没卵用的卡常实验
想起有人说,三目运算符比if-else
慢,
也有人说,加了inline
其实会更慢
那么,来做个实验吧。
(好智障的实验我都不好意思放上来)
准备
-
三种方式写的“函数”。因为我太蒟了,所以用了最简单的
max
1
1
2
3
4int max (int a, int b) {
if (a > b) return a;
else return b;
}1
2
3int max (int a, int b) {
return ((a) > (b) ? (a) : (b));
}其中后两种分别测了有
inline
和没inline
-
主程序
采用没
srand()
的rand()
来产生数据,这样不仅是随机分布的,而且总的数据还一样1
2
3
4
5
6
7int main (void) {
for (int i = 1; i <= 100000000; ++i) {
int x = rand(), y = rand();
int z = max(x, y);
}
return 0;
} -
计算器
utools真好用
过程
本着科学的实验原则,每个测五遍,取平均值
结果
从上到下依次是:define
,if没inline
,if有inline
,三目没inline
,三目有inline
结论
define
非常快,尽量用
三目运算符比if-else
快
inline
比没inline
快
。。。。。。。。。。。。
好像也没多大区别