好的代码没有一个统一的衡量标准,在程序员们的世界里大家也是各自按照自己的标准衡量着自己和别人的代码。不过有一个标准几乎是被所有人认同的。服役时间越长、出错率越高的代码就是好代码。所有的编程方法、代码技巧甚至于设计模式都是为了达到这个目的而产生的。
如何提高程序效率程序的效率分两部分:时间效率和空间效率。
时间效率 : 指的是程序运行的速度
空间效率 : 指的是程序占用内存或者外存的大小
对于这两点的把握,我们没有明确的方法。这里给出一些能够达成共识的规则,大家在今后自己编码的时候,可以通过这些规则来衡量自己的代码是否符合要求。
规则1:不要一味地追求程序的效率
如果追求程序效率需要付出降低正确性、可靠性、健壮性、可读性等质量代价,那么可以放弃这部分效率的提高。
规则2:优先提高全局效率
只有整个程序的执行效率提高才有意义,把时间和精力放在某一个不常被调用的小模块优化上得不偿失。
规则3:针对瓶颈部分优化
在实际开发工作中,我们经常遇到一些程序执行时间过长,需要优化。有些人上来就开始逐行检查代码,把认为可能影响效率的地方都尽量修改一遍。这样做不仅浪费时间,更重姿举差要的是,常常修改一遍后依然看不到明显的效果。
这种情况下,正确的方法是先找出限制效率的“瓶颈”,在这个答察部分做有针对性的优化。这么做才事半功倍。
规则4:先优化数据结构和算法,再优化执行代码
程序的两大要素是算法和数据结构,它们贯迹皮穿于程序的始终。因此,对它们的优化能够起到意想不到的良好效果。
规则5:时间效率和空间效率的矛盾
大多数时候,时间效率和空间效率是对立的。这就是程序设计中两个很重要的方法论,一个是“以空间换时间”,另一个是“以时间换空间”。此时应当分析那个更重要,作出适当的折中。
早间年,硬件成本比较高,人们大多都采用以时间换空间的策略,花费一些时间,减少内存开销。如今,内存条的价格已经非常便宜了,人们注重的`是软件的友好性,因此大部分时候都是用空间换时间。
规则6:代码不是越短越好
很多资深程序员都会有这样一个误区,完成同一个功能,代码越短越好。还经常有人说这样的话:“就这么个功能我几行代码就搞定了”。其实,追求代码精简是一个很大的误区。因为精简的代码并不一定产生高效的机器码。同时,它还付出了可读性这一代价。正确的做法是适当地做到代码精简。
注意事项
1. 书写错误
经常有人把“==”误写成“=”。“||”、“&&”、“<=”、“>=”这类符号也很容易发生少一个的错误。最可怕的是编译器根本发现不了这样的错误。
2. 初始化
变量(指针、数组)被创建之后应当立刻初始化,防止把未被初始化的变量当成右值使用。
3. 数值错误
这也是一类非常容易忽略的错误。变量的初值、缺省值错误,或精度不够,一旦出错不易发现。
4. 类型转换
为了避免数据类型转换的错误,我们要尽量使用显式的数据类型转换,避免在编译器中执行非我们所愿的隐式数据类型转换。
5. 溢出
溢出分两种,一种是超过数据类型取值范围的赋值,另一种是数组下标范围越界。这两种都是要时刻注意的。
7. 避免编写技巧性很高代码
技巧性过高的代码一定是可读性较差的代码,这种代码不易维护,后期的成本较高。
8. 好代码要复用,坏代码要重写
如果原有的代码质量比较好,尽量复用它。但是不要修补很差劲的代码。当我们遇到差劲代码时,最好的方法是重写新代码替换它。
9. 尽量使用标准库函数
对于标准库中有的函数,我们不要再花时间自己实现。很简单,你自己实现的一定不比库函数效率高。
10. 把编译器的选择项设置为最严格状态
只有最严格的审查自己的代码,才能写出优秀的软件产品。很多人甚至连编译过程中出现的warning都懒得处理,这种态度坚决不能有。
python逐渐走入人们的视线,成为热门编程语言,随之而来陆枝,加入python培训的准程序员大军也成为社会热点。Python具有许多其他编程语言不具备的优势,譬如能通过极少量代码完成许多 *** 作,以及多进程,能够轻松支持多任务处理。除了多种优势外,python也有不好的地方,运行较慢,下面电脑培训为大家介绍6个窍门,可以帮你提高python的运行效率。
1.在排序时使用键
Python含有许多古老的排序规则,这些规则在你创建定制的排序方法时会占用很多时间,而这些排序方法运行时也会拖延程序实际的运行速度。最佳的排序方法其实是尽可能多地使用键和内置的sort()方法。
2.交叉编译你的应用
开发者有时会忘记计算机其实并不理解用来创建现代应用程序的编程语言。计算机理解的是机器语言。为了运行你的应用,你借助一个应用将你所编的人类可读的代码转换成机器可读的代码。有时,你用一种诸如Python这样的语言编写应用,再以C++这样的语言运行你的应用,这在运行的角度来说,是可行的。关键在于,你想你的应用完成什么事情,而你的主机系统能提供什么样的资源。
3.关键代码使用外部功能包
Python简化了许多编程任务,但是对于一些时间敏感的任务,它的表现经常不尽人意。使用C/C++或机器语言的外部功能包处理时间敏感任务,可以有效提高应用的运行效率。这些功能包往往依附于特定的平台,因此你要根据自己所用的平台选择合适的功能包。简而言之,这个窍门要你牺牲应用的可移植性以换取只有通过对底层主机的直接编程才能获得的运行效率。
4.针对循环的优化
每一种编程语言都强调最优化的循环方案。当使用Python时,你可以借助丰富的技巧让循环程序跑得更快。然而,开发者们经常遗忘的一个技巧是:尽量避免在循环中访问变量的属性。
5.尝试多种编码方法
每次创建应用时都使用同一种编码方法几乎无一例外会导致应用的运行效率不尽人意。可以在程序分析时尝试一些试验性的办法。譬如棚旁说,在处理字典中的数据项时,你既可以使用安早和敏全的方法,先确保数据项已经存在再进行更新,也可以直接对数据项进行更新,把不存在的数据项作为特例分开处理。
6.使用较新的Python版本
你要保证自己的代码在新版本里还能运行。你需要使用新的函数库才能体验新的Python版本,然后你需要在做出关键性的改动时检查自己的应用。只有当你完成必要的修正之后,你才能体会新版本的不同。
最主告搏要睁友液的措施就是改进算法,如控制循环次数;多使用中间结果,减少运算次数等。此外还可以从程序设计技术角度采取一些措施:如尽量减少值传递,多用引用来传递参数;减少减少除法运算;多用悉物局部变量等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)