【IT168 专稿】
众所周知,硬件公司正在放弃追求单个CPU速度的竞赛,取而代之的是主要把精力集中在多核处理上。尽管许多的算法能够很容易实现并行化,但是大多数的客户端的Java代码仍旧是为单个CPU系统而编写的。这些篇文章中,演示了在单核的情况下,如何调整数组排序的算法,来提高多大30%的速度。
多年来一直在增加单个CPU的处理速度方面受到了瓶颈,开发者不得不在服务器端想办法已经有最少十年了。但是现在通过在客户端编程设计来提高程序运行速度成为现实。通过使用JDK 6.0的新特征,就可以让它们能够并行化,让客户端应用程序利用多核处理器的优势。以使用单核JDK数组排序算法为例,这篇文章略述实现细节,重点讲解并行算法。在双核的机器上,即使一个简单的实现结果能够加速35%。
摩尔定律失效
摩尔定律失效
知道一两年前,API提供商能够简单的依靠一个经验观测值做出判断,这个经验观测值是由Gordon Moore在1965始创的,他是Intel创始人之一。摩尔定律指出每18到24个月集成电路上的晶体管的数量至少要翻一番。对于软件开发者来说,这就意味着你写了一个程序,当时运行在一个单核CPU上,过年两年后,你的这个相同的程序运行在两年后的单核CPU上速度肯定会快两倍。只要操作系统向后兼容的话,你甚至不需要编译你的程序。
但是,在最近两年,硬件制造商开始找到产品的瓶颈了,不去非常费成本的提供单个芯片的计算能力。他们的解决方案就是首先就是服务器市场和客户端市场,在同一个芯片上放置多个处理器,并不是去增加每个处理器的处理速度。对于软件世界来说,这就意味着你不能“坐享其成,与己无关”了。如果你的程序有一个简单的顺序流程,那么就不能享受底层多核硬件带来的优点了。这个道理同样适用于你正在写的那些程序和一些语言的核心语言库。