阳光创信-网站建设首选品牌,合肥市公司网站建设,网站推广要多少钱,网络技术服务包括哪些本人翻译自《Exper Python Programming》 Premature optimization is the root of all evil in programming -Donald Knuth 优化的三原则 让它跑起来先一个非常常见的错误就是在编写代码之初我们就开始对代码进行优化。让人伤心的是这通常做的都是无用功#xff0c;很多软… 本人翻译自《Exper Python Programming》 Premature optimization is the root of all evil in programming -Donald Knuth 优化的三原则 让它跑起来先 一个非常常见的错误就是在编写代码之初我们就开始对代码进行优化。让人伤心的是这通常做的都是无用功很多软件只有你跑起来了才会发现它真正的瓶颈在哪里。 站在用户的视角看问题 曾经有一个团队为了自己的项目跑起来更快加班加点最终达到了自己满意的效果最终交付到客户那里结果发现客户并不觉得跑得快对他有什么好处。。。 始终保持代码可读可维护 如果当你已经完成了90%的优化任务而剩下10%的优化任务可能会使你的代码完全的不可读那这个时候你最好可以停止你的优化工作了。 优化的策略 去找别人的问题 通常情况下我们的软件测试不可能做到100%的模拟真实环境。当客户向我们抱怨软件运行速度不如从前时我们不妨找找是不是因为在和别的应用进行交互时候其他应用造成的速度问题。 刷硬件 这个大家都好懂跑的慢先看看是不是你配置不够啊不够就买买买 编写一个速度测试文档 当我们开始优化工作的时候我们不妨在我们的目标函数下面写一条注释“该函数运行时间不能超过1秒” 寻找瓶颈 查看CPU使用率 从CPU的角度来看呢又分为宏观查找和微观查找。这里最常用的是cProfile它是一个c语言的库提供对程序资源使用的监控还有时间的记录。具体的使用方法可以点这里。 查看内存使用率 既然说的是python我们也就不得不提到python的内存分配机制不像c语言那样我们可以使用一个函数就知道当前变量的内存分配情况而在python中我们是绝不会知道某个变量当前分配了多少内存空间的。。通常情况下消耗内存空间的原因有1.某个变量不受控制的增长2.在全局有太多的实例而且没有监控他们对内存的使用3.没有正确关闭的线程4.有__del__属性的对象在一个循环体内 具体的内存检测工具有Guppy、Heapy 查看网络使用率 这一部分的话我们使用通用的网络监测工具就好了。 降低代码复杂度 两个维度 测量分支复杂度程序中ifelse语句的分支有多少测量时间空间复杂度 最后两个大主题是多线程和缓存。这两个方法也是非常重要的优化程序的方法先写到这里看完继续更。 转载于:https://www.cnblogs.com/Blaxon/p/4827007.html