架构之美——系统架构(三)
提到Java语言,想必大家都不会感到陌生吧。今天我阅读的是《架构之美》的第九章——JPC:一个纯java的x86PC模拟程序,题目恰恰和Java息息相关,这一章刚好帮助我们更好的掌握Java语言。
随着处理器速度的加快,以及家用计算机用户使用的网络性能的提高,越来越多在几年前还认为是不切实际的事情也已经变得平常。十年前,当一家名为VMWare的技术小公司在加利福尼亚成立时,把一台完全虚拟的计算机作为软件运行在一台物理计算机内,这种观点还被认为相当难以理解。毕竟,如果你拥有一台计算机,为什么仅仅为了要运行你已经在运行的系统而增加一个虚拟层,从而使计算机变慢呢?你使用的软件需要硬件权力来运行,如果需要,可以直接买更多的机器来做更多的工作,为什么这样做呢?x86PC已经存在了三十多年了,并从许多不同代的硬件中发展而来。在每一个时期,它都一直保持向后兼容,所以,即使在今天,最初的8086程序也可以运行在一台新的PC上。虽然这具有毋庸置疑的优点且导致这个平台空前的成功,但是,这也意味着他为了避免破坏现在的代码,在合并新技术是变得非常复杂。如果现在重新构建一台PC,硬件的许多方面都会截然不同,而且几乎肯定会简单得多。
关于PC架构,你又了解多少呢?《架构之美》中是这样说的:现代的PC是一个非常复杂的怪兽。它的硬件已经优化和迭代了许多次,已经形成一个高效和普遍的计算平台。然而,它也保留了设计来维持它向后兼容的遗留组件和功能。JPC的大部分设计是相对简单的系统分析,对于这个模拟程序来说,把初始的系统映射到JPC也几乎是在硬件规范和Java类之间进行一一对应。对软件行业稍微有点了解的人都知道Java性能技巧:优化的第一准则:不要优化。优化的第二准则(仅限于专家):还是不要优化。对于这两句话,你有什么见解?我就说说我看到这两句话时的感觉吧,当时脑子似乎要掐架,一般人最通常的想法都是要程序跑得快是需要优化一下。不过这两年的学习经历告诉我,只有很少经过严格试验的优化手段是有效的,其它很多都是自作聪明。《构建之美》中还有一句话感觉很有道理,送给大家:良好设计和清晰编码的代码几乎总是优于“优化的”代码。不要优化代码的奇怪想法对于我们这些初入茅庐的人来说真是相当有趣。其实就是要程序员扩宽角度去思考关于高质量的代码问题。一次偶然的机会邹恒明的《算法之道》中看到了这句话:这听上去似乎反直觉,但谁说过算法是一个靠直觉的学科呢?其实,这样被他一提醒,立马回想起来很多事情的确走了直觉路线,但却隐隐有种怪怪的感觉。如果下次又遇到一些事情时就又多一个思路了,非直觉思路。
最后,老规矩,一句话来与大家共勉:别在最能吃苦的年纪选择了安逸!!!