美文网首页Pythonpython
Python算法评估

Python算法评估

作者: 王诗翔 | 来源:发表于2019-01-31 14:44 被阅读36次

    时间评估

    timeit模块是为执行相对可靠的计时操作设计的。(Linux同样有timeit命令)

    例如:

    >>> import timeit
    >>> timeit.timeit("x = sum(range(1000))")
    13.79994061900004
    

    如果想要使用命令行对某函数进行计时,可以使用-m选项调用timeit模块。

    $ python -m timeit -s "import mymodule as m" "m.myfunction()"
    

    使用timeit模块需要避免因重复执行带来的副作用。例如对排序函数.sort()进行计时,可能只是首次运行执行了排序操作,而在其他次运行时,函数可能对已排序的结果不会执行排序操作,从而影响到对计算时间的评估。

    性能评估与优化

    实际过程中,我们经常猜测自己代码需要优化的是哪一部分,不如让profiler替我们找出来。cProfiler模块使用起来和timeit一样简单。如果我们的主函数是main(),我们可以像下面一样测试,打印程序中各个函数的计时结果。

    import cProfiler
    cProfiler.run("main()")
    

    另外我们可以利用matplotlib将性能评估图形化,常用两类图形:

    • 反映问题规模与运行时间关系的图表
    • 运行时间的详细分布情况的盒形图(箱线图)

    相关文章

      网友评论

        本文标题:Python算法评估

        本文链接:https://www.haomeiwen.com/subject/kgwksqtx.html