为何双核效能难以发挥
董师傅茶坊
随着双核电脑的问世和普及,现在一些厂商开始号称自己的软件能够发挥双核的效能。可是有读者就疑惑了,为何我的双核电脑使用号称能够发挥双核效能的软件,运算速度却没有明显的提高呢?是双核电脑的问题还是软件的问题呢?本期,董师傅协同软件开发专业人士王冠雄为大家解惑。
董师傅:现在市面上有很多使用双核CPU的电脑,同时也出现了很多厂商号称能够发挥双核效能的软件,但是有朋友在使用后,发现效果并不明显。很多读者就打电话过来问我,想知道,这到底是电脑的问题还是软件的问题。
王冠雄:在分析这个问题以前,我认为有必要先搞清楚一个问题,就是什么是双核CPU?顾名思义,双核CPU就是将两个核心集成在一个芯片上,并通过并行总线将各处理器核心连接起来,从而提高运算能力,它是目前用来提高处理器性能的普遍方法。
因为处理器实际性能是处理器在每个时钟周期内所能处理的指令数的总量,因此增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。但是如果你想让系统达到最大性能,你必须充分利用两个内核中的所有可执行单元,即让所有执行单元都有活可干。
董师傅:也就是说双核CPU比以前的单核CPU多了一个内核芯片,这样在执行程序时,以前由一个内核来做的事情,现在分开由两个内核来做了,那么这样在速度和性能上会有很大的提高。
王冠雄:是的,双核技术有更优秀的整体性能,并且在并发多任务时,双核处理器会根据每个应用软件的不同需求来进行合理的分配,让每一项任务都可以在最理想的运行条件下完成运算,从而提高工作效率,用户也同时可以在多个应用环境中进行快速切换,这样会让用户在同时进行多项任务时,仍然可以井井有条地完成所有的任务,如此一来可极大地提高用户的工作效率。
因此,如果我们的CPU是双核的,但是在使用某些软件后并没有明显的效果,那就有可能是软件的问题了,因为现在大部分软件还是不能很好地支持双核技术的。
程序的最小单位是线程/进程,当我们使用的软件只能为我们提供单线程时,在双核CPU中只有一个内核在工作,而另一个处于空闲状态,造成资源的浪费,在效果上并不会有明显的提高,这时和单核CPU是没有什么区别的。这就好比在一条双车道的公路上,汽车只走一条道的情况。
现在的大部分软件还是不能很好地提供多线程和并行处理,所以虽然我们的CPU是双核的,但是和其他人的单核CPU相比在性能上并没有明显的提高。
董师傅:那么要达到什么要求的软件才能支持双核CPU,让它发挥更好的功效呢?你们专业软件人员在设计软件时会注意一些什么问题呢?
王冠雄:前面已经提到过了,我们之所以在使用双核CPU时与使用单核CPU没有明显的提高,那是因为我们现在的软件都只是单任务,单线程的,要想让双核CPU更好发挥其功效,我们就要选择那种多任务、多线程的软件了。
董师傅:那就是说只要我们的软件是多任务、多线程的,就可能支持双核CPU?
王冠雄:是的,这样就可以让双核CPU的两个内核都工作,没有空闲的,这时不仅在速度上有所提高,在效率上更有改进,就相当于以前一个人做的工作,现在分给两个人来做一样,我们可以节省很多的资源。
我们专业软件人员在今后设计软件时,会注意到双核CPU的特点和其工作原理,对单任务的软件进行改进,让它更好地支持双核CPU,现在业界已经有许多开发商注意到这些问题了,并已经取得了不错的成果。
例如:金山公司就在《剑侠情缘网络版2》中加入了针对英特尔双核技术平台的优化,这款游戏支持双客户端功能,并通过使用基于英特尔双核技术平台和底层技术支持,可以在单一游戏主窗口下实现对于多账号、多角色的状态观察、操作,充分发挥了CPU的双核效能。
董师傅:那么现在市场上究竟有哪些软件是支持双核CPU的呢?作为软件行业的领头羊,微软在这方面有新的软件吗?
王冠雄:根据我的了解在微软的服务器类软件中,新版本的Exchange Server12已经支持64位扩展技术和双内核技术,微软在今年发布的Commerce Server 2006、Host Integration Server 2006、BizTalk Server 2006等软件也将支持新的处理器技术。
董师傅:其他的呢?例如一些应用软件。我们的软件系统不只包括操作系统,应该还有应用软件吧,那么在应用软件方面有改进吗?
王冠雄:当然,例如:3.60版的WinRAR已经正式支持双核,它的压缩速度比单核要快30%~40%。多线程版本的RAR压缩算法提高了在有数个CPU、多核心CPU和使用超线程技术的处理器的计算机上的压缩速度。我们可以将“多线程”选项添加到“性能和硬件测试”命令中,这样就可以比较常规和多线程版本的RAR压缩算法的性能。另外新版的Linux也开始对双核CPU的支持了。