优化程序得方法

优化程序得方法

程序优化杂谈——前言

( 作者:mikespook |发布日期:2003-4-13|浏览次数:95)

关键字:程序,优化
关于程序优化,是从计算机出现以来一个长久的话题。早期计算机由于运算速度慢、存储容量小,程序员不得不一遍又一遍的研究算法、优化程序。但随着计算机硬件的发展,我们现在可以奢侈的写着程序,而不考虑这些代码是不是太慢,或者是不是太大。而且,随着编译技术的不断进步,也减轻了程序员在程序优化方面的工作量。传闻,某编译器编译时,某些情况下可达到1:1的高级语言到机器指令的转化。这可真是在代码海洋中苦苦挣扎的程序员的福音,不用再考虑优化,而将所有优化工作交给编译器来完成。
但真得是这样么?技术的进步真得可以代替人工操作的程序优化么?
经常听到“高手”很得意的拿着自己又慢又大的程序对“菜鸟”说:“看,我的程序的framework多棒。”每次听到这话,我就想对这些代码说:“Sh*t1(我倒是不敢对高手说,毕竟技不如人。^@^)我是个老菜鸟了,不懂什么framework,不过这种又慢又大的程序绝对不是我想要的。
所以我决定从我的雕虫小技中整理出来这么一些东西和大家分享。希望这些劣质的技巧能对你有一点帮助,而不是浪费你的时间。我还是觉得不论别的东西怎么样,写出速度快,占用空间少的代码是每个优秀的程序员应具有的基本素质之一。
我可能会不定期的做一些整理给大家发出来。但是关于这些文章的名字又让我为难了。程序优化不光是在代码级上,还有整体结构设计与编译器技术。所以这些文章或许叫做代码优化更合适一些。但也许在以后,等自己的水平有所提高的时候(至少弄清楚什么叫framework ^$^),会加入关于更高级的方面的讨论。
因为是雕虫小技,所以我想对适合阅读本文章的朋友给一些建议。(暂时只是针对代码优化)
不适合阅读这些文章的朋友:
为了不让你们看废话浪费时间,先看这个。
1.刚开始接触编程的朋友
文章中大量应用到各种小技巧,如果你刚开始学习编程,我还是建议你先打好基矗再来体会这些“怪异”技巧的微妙之处。
2.做系统分析、架构设计的朋友
因为水平有限,所以我这里所说的优化是在代码级进行的。对于系统分析、架构设计毫无用处。不要在这些上面浪费你的时间。
3.相信优化是不必要的,或者认为优化应该交由编译器完成的朋友
相信我,这绝对不是你想看的。我不会讨论优化的必要性,也不会介绍任何利用编译器特性进行优化的内容。这些技巧除了把你漂亮代码弄乱,其他什么帮助也不会有的。你最好还是看看编译器手册。
我希望下面的朋友能看看这些文章:
1.所有感觉无法再忍受自己那奇慢无比的代码,又不知从何可以让它运行得更快的朋友
你应该能通过阅读这些文章尝试修改自己的代码,让他们运行在一个你能接受的速度下。
2.所有对代码级优化有所心得的朋友
我不认为你会从这些劣质的技巧中有所收获。我只是希望你能阅读它们,并指出其中的错误与不足,让我能有一个更大的进步。
关于如何阅读这些文章,我想那是你自己的事情。不过我还是说说我的看法,仅供参考。
1.我这里所说的不是方法,而是一种想法、一种思路(得,我没那么大本事,所以不敢自称思想。不过说是想法应该没人有意见吧?)。如果你能从其中有所收获,也应该是体会这些想法。举一反三。应用到你的程序中去。
2.每篇文章我都会给出例子程序,不一定是什么语言写的。只是为了更好的说明问题。可看,可不看。
3.我在文章中会提到一些我认为应该看的书。因为有一些概念性的东西我不会浪费时间,在这里再抄一遍概念(我又不是写那种摆在新华书店卖的书,所以我没必要抄来抄去的。)。所以如果你遇到不清楚的地方,应该去看这些书,而不是来问我。
好了废话就写这么多,以后的文章中我就不说这些废话了。^$^