测来测去14:Phoronix tinymembench结果不理想的可能原因

Phoronix tinymembench

这个测试经常用来衡量CPUmemcpymemset这两个基本操作的性能。最近在执行针对两款CPU的性能测试中,发现某款相对”高端“的CPU在这两个测试中表现与相对“低端”的CPU相比,存在较大差距。

当然,高端和低端只是一般印象,具体各个细节参数也需要具体衡量

并且差距不是一般的明显,所以需要调查一下Phoronix tinymembench具体是如何执行测试的。

Source code

在这里找到了tinymembench的源码:

https://github.com/ssvb/tinymembench/blob/master/main.c

按照小学语文的一般叙述顺序,我们介绍一下“首先映入眼帘”的:

#define SIZE (32 * 1024 * 1024)

后面的源码先不用看了,这个是定义了一个32MB的长度,基本上可以认为是执行memcpymemset的内存大小。

再看一下执行测试的两块CPU的L3 Cache大小,结果好的那个有64MB,结果不好的那个只有30MB。

为了验证猜测,把这个指改为16 * 1024 * 1024,原本结果不好的CPU的测试成绩就取得了反超。

不要灰心

像这种CPU测试工具,如果测试成绩不好,真的需要深入挖掘一下,也许是这个测试不适用于你CPU的体质。不过如果测试成绩好,那说明确实挺好的 :)

© 2020 DecodeZ All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero