工具

profiler

  • cProfile
  • profile

使用

snakeviz

1
2
3
python -m cProfile -o /to/profile_result.prof your_program.py args

snakeviz /to/profile.prof
  • 结果

    • 网站

gprof2dot

1
2
3
python -m cProfile -o profile.pstats   program.py args

gprof2doc -f pstats /to/profile.pstats | dot -Tpng -o result.png
  • 结果

    • 函数调用图片

代码速度

set 快于 list

x in set 快于 x in list

  • 测试

    1
    2
    3
    4
    5
    
    In [18]: %timeit 12 in {1,2,3,12}
    13.3 ns ± 0.0568 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)
    
    In [19]: %timeit 12 in [1,2,3,12]
    26.4 ns ± 0.0764 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)