浅谈程序效率问题
时间:2011-06-10 来源:陈国立
程序效率是一件很重要的事情,随着处理业务深入,问题的多样化,人们对计算机程序要求越来越高,而用户操作需要越来越简化。这个矛盾体,需要处理的东西要求越多,又要能越来越简单,虽然硬件资源越来越便宜,但如果除去硬件条件情况下,程序效率必须考虑的问题。因此,程序设计和性能越来越考验程序员的功力。
程序如果太庞大太迟缓,不论它的功能有多么的强大,都难以被用户接受。虽然有些程序之所以变得更大,消耗更大的内存,是为了实现超大计算能力,但有太多的程序,其庞大的身驱和迟缓的脚步必须“归功”于懒散草率的编程习惯。
这几天感觉非常郁闷,在做公司一个小项目,前人留下的代码非常杂乱,无设计可言,代码到处重复,变量随意命名,本来很简单的功能,非得写得那么复杂代码,更令人恶心的事,整个工程项目一个注释都没有。全部推翻重写,是不可能的事情,毕竟公司花了钱上面,另外重写时间也不够,我的任务是在这上面加和修改一些功能。相当的无语,这种感觉好像“前人拉陀屎,我来帮他擦屁股”。所以遇到这种情况,只好无奈和自认倒霉......
扯远了点,还是回到效率问题吧。
高性能算法和数据结构虽然很棒,但是草率的实现过程会严重的降低其影响力,最严重的就是“产生和销毁过多的对象”这种情况经常被忽视,而且不容易被辨别出来。多余对象的构造动作和析构对象是程序性能大出血的地方。每一次有非必要的对象被产生和被销毁,便宜流失宝贵的CPU时间。
另外,程序变大变慢,并不只因为产生太多对象。高性能问题还包括程序库的选用及语言特性的施行。
那么,程序效率问题需要注意那些事情?
以下提几点原则
1、2-8原则
一个程序80%资源用于20%代码身上,80%的内存被20%代码占用,80%硬盘访问动用由20%代码执行,80%的维护力气花在20%代码上面。有时候甚至达到1-9法则。
还没有写完待续。。。。