如何比较cpu性能?

漆雨莉漆雨莉最佳答案最佳答案

最近正好复习了CPU的许多知识,这个题目其实挺难的,因为CPU非常复杂的一个零件,而题主仅仅给了三个不完整的参数(主频、制程和架构),没法写出一个通用的公式来衡量CPU的性能,我尽量总结一些通用的原则来比较CPU吧! 先看这个图,CPU的性能可以由单核性能和多核性能组成: 单核性能很好理解,就是单个内核的执行能力,测试单核性能最经典的测试软件是Geekbench,在Windows平台上有Windows平台的版本,在Linux平台也有Linux版本的命令行工具。 不过大多数情况下我们不太关注单核性能,而是关心多核性能,因为现代的CPU都是多核的,那么多核性能怎么衡量呢?

多核性能跟单核性能一样,也存在单线程和多线程两个版本,只不过多线程需要更多的硬件支持,并且现在的编译器也越来越支持多线程了。 多线程的软件测试也有Geekbench但是多线程版本只有Android平台和Mac有,另外一款软件叫做Synergy,能够跑多个Geekbench任务同时,并综合每个任务的分数和消耗的时间得出最终的分数。

如果嫌这两个软件不够专业的话,还可以使用专业软件htop或者top,它们能够直接看到各个核心的状态 为了看方便,我们取两个软件的平均值,假设是P,然后把P作为CPU的单线程和多线程性能指标。 但是这样得到的结果可能并不是很准确,因为多核机器上运行的程序未必是多线程的,这时候就需要对结果进行加权,对于单线程任务而言,它的权重最大,多核任务其次,单核任务权重最小。

现代的CPU都支持超线程技术,那么单核性能应该按照如下方式来计算。 P=(P1+P2)/2 如果CPU支持超线程,但应用程序不是多线程的,则 P=(P1*2+P2*N)/(N+2) N为处理器核心个数。 对于不支持超线程技术的处理器,比如早期的单核心Intel酷睿处理器,P=P1/2。

如果按上述方法计算出来的P值接近于0,说明这个CPU很差;若接近于1,则说明这个CPU很不错。 除了以上两种情况之外,实际中会遇到很多特殊情况,例如一个CPU有多个物理核心,但只有一个逻辑核心,此时 P=P1/2 N为处理器的物理核心数。

发表评论
请发表正能量的言论,文明评论!