Linux 内核 2.6.37 在使用内存和线程方面是否比 2.6.34 慢 80%?

Linux 内核 2.6.37 在使用内存和线程方面是否比 2.6.34 慢 80%?

如果我运行命令

time perl -e 'use threads; $T=12 ; foreach (1..$T) { $thr[$i++] = threads->create(sub { printf "I am thread %s\n", threads->tid(); foreach (1..9e6) { push(@a, sqrt(1234)/sin(1234)*cos(1234)) } ; printf "thread %s finished.\n", threads->tid(); }); } foreach (0..$T-1) { $thr[$_]->join(); }'

我看到 2.6.37慢 80%比 2.6.34。该命令仅启动 12 个线程,计算 sqrt(1234)/sin(1234)*cos(1234) 9.000.000 次,然后等待所有线程完成。

我在双核 Xeon X5650 @ 2.67GHz(6 核带 HT)上进行了这些测试,该处理器有 24 GB 内存,openSUSE 11.3,内核 2.6.34.7-0.5-default 和 kernel-default-2.6.37-6.1,http://download.opensuse.org/repositories/内核:/stable/openSUSE_11.3/x86_64/

这种减速是预料之中的吗?有人可以确认这些结果并在您自己的硬件上在 2.6.34 和 2.6.37 上测试前面的命令吗?如果您运行上述命令,请根据您的核心数量调整 $T。如果内存不足,请将内循环 (1..9e6) 减少到 (1..9e5) 或类似值。

谢谢,理查德

答案1

您确定两个内核的配置相同吗?

相关内容