搬砖的科学 买CPU必看!

2017-03-16 15:05产品 标签:科学

处理器的关键参数究竟有多少?构架(核心、线程等等)、频率(包括动态频率)、缓存(一、二、三级)、优化指令集……总之有很多,对很多人来说,这有点过于复杂了。尤其是最近CPU市场辣么热闹,很多人又将目光转到了处理器上,不过,哪个最能影响性能、哪个参数又最直观反应处理器能力呢?

001

现在的处理器动辄x核心x线程,一看就是满满的高大上。不过很多人并不了解核心线程存在的意义。究竟核心线程越多越好还是单核心高频率至上?

002

小编先来说说“核心和线程”的概念,核心好理解,就是同一个CPU下有几个物理内核,家用电脑一般也就是2至8个最多了,线程则是在这些物理核心的继续上虚拟出来的另外一个核心。如果从应用程序的角度来看,每个任务都以线程为基础执行的,无论这个线程是真的物理核心还是虚拟出来的哪一个,一个任务安排给一个线程来计算就是了。

看起来,每个分配出来的任务都是由一个线程来负责运算,但这并不意味着1+1+1+1+1大于5。因为毕竟线程是虚拟建立于物理核心基础上的,所以最多是一个百分比的性能、效率提升,而不是成倍的效能增长。什么?听不懂?

好吧,假设各位都在工地打工,每个人分配工作是搬砖头(单核心),一个人一只手搬砖,一小时搬10块(1线程),两只手一起搬是15块(2线程),这样好理解多了吧?当然,这个工地不可能就你一个人搬砖,可能是两个、三个、四个。每个人都是同等的搬砖效率,这就是多核心多线程。

003

那你一定认为多核心多线程的处理器就是最好的了对吧?也不尽然。在任务分配上,工头(程序)安排的是否合理,如何安排,也将很大程度上决定搬砖的效率(性能)。比如说无论你肌如海绵枯瘦如柴,还是壮如牛、身如钢铁(相当于处理器频率高低,后面小编会说到),每小时搬10个砖头,但是工头认为目前运送砖头的这个路线只能允许你一个人来回搬动,那么,他就指挥你一个人干,其他人再壮、再有力气,也只能旁边看着了。

004

换个角度,假如这个工地同一时间需要快速搬大量的砖,那么就需要多个人干同一样工作,这就是多核心多线程的作用。

5

显然,这个核心线程的利用率最终是依靠程序的需求决定的。那问题也随之而来了,究竟什么类型的应用要依靠单核处理、什么时候又需要多核心协同作战?对于大部分程序而言,都是计算密集型的应用。比如应用的GUI绘制、编/解码、复杂的结构数据运算、物理结构计算(游戏需要这两部分),这些理论上都是优先单核心进行计算的。因为对程序员而言,编码一个程序,复杂度越低难度就越低、同时可以最大可能提高能耗比(运行效率)。这个时候,单核心是否强壮如牛(频率够高)就非常重要。只有在单核心无法满足计算要求的情况下,才会将来不及计算的任务分配个别的核心线程去处理(大型游戏)。另外按道理来说,每运行一个程序,系统就应该调度一个核心线程分配,然后这些同时运行的程序按照占用资源的多少被执行动态的分配,至于效率高低,那要看操作系统的调度能力了。

006

喏,这就是码农的心声

007

总结一下,处理器首先要看中单核心的运算能力,然后考虑多核心多线程的总体性能。相信这时候肯定有人说,你哔~了这么多半天,到底选哪个?给哥个痛快的!那好,小编继续把没说完的告诉大家。

日常应用追求频率更高(身体更壮)、构架更新的处理器(注:更高的频率也能一定程度弥补核心线程不足的问题),价格适中即可,不要过分贪大求全;每天大型游戏、视频剪辑等,多线程处理器更适合你。

另外要提醒一点,单线程应用中对内存和硬盘的传输速度要求有限,多线程复杂应用不仅仅是处理器一个部分的事情,内存(大容量高频率)、超强的磁盘性能也必不可少,这需要完整的一套体系互相匹配才可以。还有一点,多媒体指令集比如Intel的AVX2等等,对应用有非常大的效率提升作用,这一点也需要考虑进去(程序支持哪种指令集)。

举个栗子,Intel推出的7代酷睿i3 7350K简直就是单线程性能表现逆天的存在(处理器单线程性能天梯榜:http://www.cpubenchmark.net/singleThread.html),而且凭借着超高主频,也可以弥补一部分因为核心数量偏少造成的性能缺失。 

常用单线程应用:解压缩、视频编解码、图片编辑、办公应用、影音娱乐、游戏

常用多线程应用:大型游戏、视频剪辑、虚拟机等专业应用

其实一般应用需求中,60%以上的情况都是单核心性能决定了处理器的表现。好了不说了,小编继续搬砖去,今天的砖还没搬完呢。 

008