lab
//以下結果皆為運行1000次平均數
//變量類型測試
凈運行時長:1140 / 1000000 s
int 100*100*1000 次:19900 / 1000000 s
register int 100*100*1000 次:4869 / 100000 s
long long 100*100*1000 次:26117 / 1000000 s
register long long 100*100*1000 次:25999 / 1000000 s //變化不大,推測是沒有存的下long long的寄存器
short 100*100*1000 次:19953 / 1000000 s
register short 100*100*1000 次:4467 / 1000000 s
char 100*100*100*10 次:11695 / 1000000 s
register char 100*100*100*10 次:5716 / 1000000 s
float 100*100*1000 次:34497 / 1000000 s
register float 100*100*1000 次:15214 / 1000000 s
double 100*100*1000 次:34587 / 1000000 s
register double 100*100*1000 次:15266 / 1000000 s
long double 100*100*1000 次:44038 / 1000000 s
register long double 100*100*1000 次:16606 / 1000000 s
//常數測試(以rand為支撐,均為int未開register情況,故凈運行時間較長)
//我們可以設或運算常數為1
//四舍五入取整
凈運行時長:222565 / 1000000 s
| 100*100*1000 次:231196-222565~~ 8631 / 1000000 s -> 1
& 100*100*1000 次:230421-222565~~ 7856 / 1000000 s -> 1
^ 100*100*1000 次:230339-222565~~ 7774 / 1000000 s -> 1
+ 100*100*1000 次:230210-222565~~ 7645 / 1000000 s -> 1
- 100*100*1000 次:229336-222565~~ 6771 / 1000000 s -> 1
* 100*100*1000 次:228650-222565~~ 6085 / 1000000 s -> 1
/ 100*100*1000 次:251363-222565~~ 28798 / 1000000 s -> 3 to 4
% 100*100*1000 次:252069-222565~~ 29544 / 1000000 s -> 3 to 5
//函數調用
//int型函數
//函數大小
1 line(max):
int 100*100*100 次:34646-23684 ~ ~ 10962 / 1000000 s
__attribute__((always_inline)) 100*100*100 次:33032-23684 ~ ~ 9348 / 1000000 s
3 line(a^=b,b^=a,a^b):
int 100*100*100 次:26910-23868 ~ ~ 3042 / 1000000 s
__attribute__((always_inline)) 100*100*100 次:25955-23868 ~ ~ 2087 / 1000000 s
5 line:
int work(int &a,int &b)
{
a+=b;
b+=a;
a+=b;
a-=b;
b-=a;
return 0;
}
int 100*100*100 次:31038-23648 ~ ~ 7390 / 1000000 s
__attribute__((always_inline)) 100*100*100 次:28577-23648 ~ ~ 4929 / 1000000 s
//傳參個數
1 num:
int work(int &k)
{
return k;
}
int 100*100*100 次:13750-12666 ~ ~ 1084 / 1000000 s
__attribute__((always_inline)) 100*100*100 次:12986-12666 ~ ~ 320 / 1000000 s
3 num:
int work(int &a,int &b,int &c)
{
return a;
}
int 100*100*100 次:36482-34758 ~ ~ 1724 / 1000000 s
__attribute__((always_inline)) 100*100*100 次:34989-34758 ~ ~ 231 / 1000000 s
5 num:
int work(int &a,int &b,int &c,int &d,int &f)
{
return a;
}
int 100*100*100 次:59107-56833 ~ ~ 2274 / 1000000 s
__attribute__((always_inline)) 100*100*100 次:57352-56833 ~ ~ 519 / 1000000 s
//算法常數(經運行時長因測試算法而異,統一為被減數)
-----
swap() 100*100*1000 次:305561-222565~~ 83036 / 1000000 s -> 9 to 10
a^=b,b^=a,a^=b 100*100*1000 次:243165-222565~~ 20600 / 1000000 s -> 2 to 3
-----
//數組大小為100,左右端點確定采用rand和^交換
//均賦值為0
memset() 100*100*100 次:46571-35350 ~ ~ 11221 / 1000000 s
for 100*100*100 次:61073-35350 ~ ~ 25723 / 1000000 s
-----
浙公網安備 33010602011771號