优化:解决方案(摘自《python 高级编程)
作者:
逆小苍 | 来源:发表于
2021-04-20 17:42 被阅读0次
Stefan Schwarzer在Europython 2006上用了一个原创的伪代码示例对优化一个程序做了概括
def optmize():
"""Recommended optmization"""
# fix architecture
assert got_architecture_right()
# fix bugs
assert made_code_work(bugs=None)
while code_is_too_slow():
wbn = find_worst_bottleneck(just_guess=False, profile=True)
is_faster = try_to_optmize(wbn, run_unit_tests=True, new_bugs=None)
if not is_faster:
undo_last_code_change()
简单来说如下:
- 优化架构
- 让代码正常运行
- 如果代码运行太慢
- 找到瓶颈,不是凭空猜测,应该依据问题描述的范围轮廓
- 尽力去优化瓶颈处,不要引入新的bug
- 运行单元测试,判断代码运行的是否更快了
- 如果没有,撤销代码改动
常见优化程序的一些解决方案
快速检测导致瓶颈的代码行
- 测量代码的回路复杂度
- 测量Landau符号,也成为大O记号
对运行代价很高的函数和方法的结果,可以进行缓存处理,只要:
- 该函数是确定性的,输入相同的值,生成的结果每次都相同
- 函数返回值在一定时期内(不确定)持续有用和有效
本文标题:优化:解决方案(摘自《python 高级编程)
本文链接:https://www.haomeiwen.com/subject/mewnlltx.html
网友评论