性能优化入门

大纲

  1. 性能优化的前提

  2. 性能问题的定义及分析定位

  3. 性能优化


性能优化的前提

  1. 保证程序正确

  2. 可信赖的测试

  3. 有收益

保证程序正确

如果程序的运行结果是错误的(非你所想要的预期结果),那么这样的情况下进行性能优化是没有意义的。

可信赖的测试

  1. 方便,易执行的测试操作;

  2. 可验证你所做的修改并不会影响已有功能的正确执行。

有收益

投入和产出要符合预期,或者产出和投入相匹配。


性能问题的定义及分析定位

性能问题的定义

  1. CPU占用高
  2. 内存消耗大
  3. 执行用时长
  4. I/O
  5. 网络

性能分析

  1. 选择工具

  2. 结果分析

工具

  1. time/timeit,简单高效,但输出信息太少

  2. profile/cprofile,标准库,接口简单,但是开销大

ncalls:函数被调用的次数

tottime:函数的总耗时,子函数的调用时间不计算在内

percall:tottime / ncalls

cumtime:函数加上其所有子函数的总耗时

  1. line_profiler,分析每一行代码

  2. vprof


参考链接:http://v.youku.com/v_show/id_XMzEyMTA5MDY4OA==.html?spm=a2h3j.8428770.3416059.1