我有两个类似的系统,但其中一个运行速度有点慢,我不知道原因。
系统 1
time convert rose: -resize 5000x5000 -bench 5 /tmp/rose.png
Performance: 5i 0.221729ips 26.050u 0:22.549
real 0m22.554s
user 0m25.795s
sys 0m0.262s
系统 2
time convert rose: -resize 5000x5000 -bench 5 /tmp/rose.png
Performance: 5i 0.220167ips 28.710u 0:22.710
real 0m22.731s
user 0m25.553s
sys 0m3.172s
虽然总体时间大致相同,但系统时间(在内核中花费的时间)却是原来的 10 倍以上。
什么原因导致这种情况发生?我应该研究什么来解决这个问题?
内存相同,且 /tmp 没有满。
由于这些是 Core i7 2600,我想这可能与芯片组召回和驱动器性能较慢有关。或者它们的设置不同。
答案1
如果系统 2 的 RAM 相当紧张,这可以解释这一点:内核正在花时间交换其他应用程序。如果我的理论是正确的,结果应该不会非常可重复,因为系统 2 将释放足够的 RAM 进行第二次运行。
否则,eumino 关于 /tmp 差异的评论可能可以解释这一点(/tmp 几乎已满且碎片化?)但在我看来,这种情况不太可能发生。