我写了一个程序,这很简单。
void do_test() {
const char *s = "http://";
int i = 0;
for(; i<100000; ++i) {
const char *p = s;
while(*p != '/') {
++p;
}
}
}
int main() {
int i = 0;
for(; i<100; ++i) {
do_test();
}
return 0;
}
运行此代码100次,将导致差异。我的64位服务器内核linux 2.6.32的成本为1.29s,但在内核2.6.18的32位服务器上只花费1.23s。
答案 0 :(得分:2)
由于硬件不同,性能上的差异可能(并且很可能与内核无关)。
此外,在责备内核之前,我会想到编译器优化,CPU架构等......
答案 1 :(得分:1)
即使两台计算机具有相同的规格,硬件可能也不完全相同,处理器制造过程中的纳米级差异可能导致这种小的差异(~1%)