python性能优化模块
系统监控模块
psutil模块
psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。
一、 安装psutil
pip install psutil
二、 监控cpu信息
- import psutil
- psutil.cpu_times() #获取cpu(逻辑cpu的平均)占用时间的详细信息
- psutil.cpu_times(percpu=True) #获取每个cpu占用时间的详细信息
- psutil.cpt_times().user #获取用户进程占用cpu的时间(user+sys+idle+wait=total)
三、 监控内存信息
- import psutil
- psutil.virtual_memory() #获取内存信息
- psutil.virtual_memory().total #获取内存总量
- psutil.swap_memory() #获取swap信息
- psutil.swqp_memory() #获取swap总量
四、 监控磁盘信息
- import psutil
- psutil.disk_partitions() #获取各分区的信息
- psutil.disk_usage() #获取各分区的使用情况
- psutil.disk_io_counters(perdisk=True) #获取各个分区的io情况
- psutil.disk_io_counters(perdisk=True)[‘sda1’].read_count #获取sda1的io读取情况
五、 监控网络信息
- import psutil
- psutil.net_io_counters() #获取所有网络接口io信息
psutil.net_io_counters(pernic=True) #获取每个网络接口的io信息
六、进程信息
import psutil
- psutil.Process(pid) #查看对应pid的进程信息
- psutil.Process(pid).username() #查看是哪个用户创建的该进程
- psutil.Process(pid).cmdline() #查看进程所在的路径
七、 登录用户信息
- import psutil
- psutil.users() #查看目前登录用户信息
例子
1 | import psutil |
output
1 | 8 |
时间监控
cProfile介绍
- cProfile自python2.5以来就是标准版Python解释器默认的性能分析器。
- 其他版本的python,比如PyPy里没有cProfile的。
- cProfile是一种确定性分析器,只测量CPU时间,并不关心内存消耗和其他与内存相关联的信息。
cProfile模块
时间监控装饰器
1 | #!/usr/bin/env Python |
内存监控
tracemalloc介绍
tracemalloc模块是跟踪python分配的内存块的调试工具。它提供以下信息:
- 回溯对象的分配位置
- 每个文件名和每个行号的已分配内存块的统计信息:已分配内存块的总大小、数量和平均大小
- 计算两个快照之间的差异以检测内存泄漏
tracemalloc模块
内存监控装饰器
1 | #!/usr/bin/env Python |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 兼一书虫!
评论
TwikooValine