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比2.6.34 80% 。 该命令刚刚开始计算sqrt(1234)/ sin(1234)* cos(1234)9.000.000次的12个线程,并等待所有线程完成。

我使用双核Xeon X5650 @ 2.67GHz(带HT的6个内核)以及24 GB内存,openSUSE 11.3,kernel 2.6.34.7-0.5-default和kernel-default-2.6.37-6.1从http:// download .opensuse.org / repositories / Kernel:/stable/openSUSE_11.3/x86_64/ 。

预计这是放缓吗? 任何人都可以在自己的硬件上确认这些结果并在2.6.34和2.6.37上testing以前的命令吗? 如果你运行上面的命令,把$ T调整到核心数量。 如果内存不足,请将内部循环(1..9e6)减less到(1..9e5)或类似。

谢谢,理查德

你确定你在内核中有相同的configuration吗?