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() #查看目前登录用户信息
例子
output
时间监控
cProfile介绍
cProfile自python2.5以来就是标准版Python解释器默认的性能分析器。
其他版本的python,比如PyPy里没有cProfile的。
cProfile是一种确定性分析器,只测量CPU时间,并不关心内存消耗和其他与内存相关联的信息。
cProfile模块
时间监控装饰器
内存监控
tracemalloc介绍
tracemalloc模块是跟踪python分配的内存块的调试工具。它提供以下信息:
回溯对象的分配位置
每个文件名和每个行号的已分配内存块的统计信息:已分配内存块的总大小、数量和平均大小
计算两个快照之间的差异以检测内存泄漏
tracemalloc模块
内存监控装饰器
最后更新于
这有帮助吗?
