python程序性能分析

最近在编写贝叶斯概率预报方面的程序,遇到了程序运行时间慢的问题。对单站处理来说,可能影响不大,但是如果加个循环,几百个站点需要计算的话,这时间就是几百倍的差异了。当然也可以选择采用多线程并行计算的方式,对于普通台式机来说有点不合适,上服务器的话,有点浪费。本着节约的精神,首先从原程序本身入手,找到耗时比较多的函数进行优化。所用的性能分析工具为python自带的cProfile模块,下面讲解如何使用:

我是在spyder编辑器中执行python程序的,程序运行过后,在IPython console工作区输入

import cProfile

cProfile.run('calFaiy(obs,fore,x)',sort="cumulative")

这样就能清楚的看到calFaiy(obs,fore,x)函数的耗时,非常的清楚。

找到耗时较多的函数,逐一进行改进,程序的性能可有数量级的提升。同时也发现了自己在编程中不规范的地方,有些变量不应该放在循环里的,或者可以独立出来计算的,都没有设计好,后期需要注意。

附运行截图:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容