利用4行Python代码监测每一行程序的运行时间和空间消耗


Posted in Python onApril 22, 2020

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,其具有高可扩展性和高可移植性,具有广泛的标准库,受到开发者的追捧,广泛应用于开发运维(DevOps)、数据科学、网站开发和安全。然而,它没有因速度和空间而赢得任何称赞,主要原因是Python是一门动态类型语言,每一个简单的操作都需要大量的指令才能完成。

所以这更加需要开发者在使用Python语言开发项目时协调好程序运行的时间和空间。

利用4行Python代码监测每一行程序的运行时间和空间消耗

1、分析时间耗时

分析项目消耗的时间消耗,依托于line_profiler模块,其可以计算出执行每行代码所需占用的CPU时间。

第1步:安装line_profiler模块,我是用pip安装一直失败,所以下载到本地进行离线安装,指令如下所示:

pip install .\line_profiler-3.0.2-cp37-cp37m-win_amd64.whl

安装成功效果如下所示:

利用4行Python代码监测每一行程序的运行时间和空间消耗

第2步:分析每行代码的运行时间,本案例Demo检测for循环一万次累加和while循环一万次累加的时间,并进行对比,实现代码如下所示:

from line_profiler import LineProfiler
 
def operation1():
 num=0
 for i in range(10000):
  num += 1
 
def operation2():
 num=0
 while(num < 10000):
  num += 1
 
if __name__ == "__main__":
 lprofiler = LineProfiler(operation1,operation2)
 lprofiler.run('operation1()')
 lprofiler.run('operation2()')
 lprofiler.print_stats()

运行程序,可见while循环速度稍微慢一些,效果如下所示:

利用4行Python代码监测每一行程序的运行时间和空间消耗

2、分析空间耗时

memory_profiler模块可实现对Python项目中每一个代码的内存消耗进行分析和监控。

第1步:安装memory_profiler库文件,指令如下所示:

pip install memory_profiler

安装成功效果如下所示:

利用4行Python代码监测每一行程序的运行时间和空间消耗

第2步:分析每行代码的空间消耗,本案例Demo检测for循环一万次累加和while循环一万次累加的消耗空间,并进行对比,实现代码如下所示:

from memory_profiler import profile
 
@profile
def operation1():
 num=0
 for i in range(10000):
  num += 1
 
@profile
def operation2():
 num=0
 while(num < 10000):
  num += 1
 
if __name__ == "__main__":
 operation1()
 operation2()

由于是简单运算消耗的内存是微乎其微的,效果如下所示:

利用4行Python代码监测每一行程序的运行时间和空间消耗

本篇博文仅介绍以上两种模块,其实有更多有意思的模块可以实现对程序的运行时间和空间消耗的监测,感兴趣的朋友可以多多尝试。

到此这篇关于利用4行Python代码监测每一行程序的运行时间和空间消耗的文章就介绍到这了,更多相关python 监测程序运行时间空间消耗内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python爬虫框架Scrapy安装使用步骤
Apr 01 Python
python实现DNS正向查询、反向查询的例子
Apr 25 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
如何在Django项目中引入静态文件
Jul 26 Python
python django 原生sql 获取数据的例子
Aug 14 Python
Python高级特性 切片 迭代解析
Aug 23 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 #Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 #Python
django使用JWT保存用户登录信息
Apr 22 #Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 #Python
Django如何使用jwt获取用户信息
Apr 21 #Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 #Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 #Python
You might like
用PHP4访问Oracle815
2006/10/09 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
PHP命名空间用法实例分析
2019/09/04 PHP
对xmlHttp对象的理解
2011/01/17 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
创建自己的jquery表格插件
2015/11/25 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
Fiddler如何抓取手机APP数据包
2016/01/22 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
客户经理岗位职责
2013/12/08 职场文书
简历自我评价模版
2014/01/31 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
开学典礼致辞
2015/07/29 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript