我的一个在 OS/X 上“计算”的程序显示的时间如下:
real 0m10.883s
user 0m6.924s
sys 0m3.957s
相比之下,在附近的 Linux 系统上,我看到:
real 0m7.480s
user 0m7.172s
sys 0m0.280s
更糟糕的是,这种情况是在重写一个特定算法之后出现的,新旧算法都没有做任何明显的系统调用。
一些使用 dapptrace 和 iprofiler 的人没有发现任何东西。这都是 10.8.2,xcode 4.2。有问题的代码是C++。
这里的代码(还)不够小,无法在此处发布。我可以说发生变化的区域中有 STL 向量和映射。但是,dapptrace 没有透露。
然而,procsystime 揭示了“madvise”是这个邪恶根源的系统调用。
我将投票结束这个并根据我所学到的内容写一个新问题。