yappi,Python性能分析库
yappi是为Python设计的线程感知型性能分析器,不仅支持CPU时间分析,还能够准确追踪线程级别的性能问题。
安装
pip install yappi -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
基本用法
import yappi
import time
import threading
def func1():
time.sleep(2)
def func2():
time.sleep(2)
# 启动性能分析
yappi.start()
# 创建并运行多个线程
t1 = threading.Thread(target=func1)
t2 = threading.Thread(target=func2)
t1.start()
t2.start()
t1.join()
t2.join()
# 获取并打印统计结果
stats = yappi.get_func_stats()
stats.print_all()
# 停止分析
yappi.stop()

字段解释
- ncalls: 函数被调用的次数。
- tsub: 函数自身消耗的时间(不包括子函数)。
- ttot: 函数总消耗的时间(包括子函数)。
- tavg: 平均每次调用消耗的时间。
- name: 函数名称。
高级用法
import yappi
import time
# 设置时钟类型
yappi.set_clock_type("cpu") # 或 "wall"
# 自定义上下文管理器
class YappiProfile:
def __enter__(self):
yappi.start()
return self
def __exit__(self, *args):
yappi.stop()
stats = yappi.get_func_stats()
stats.save('profile.prof', 'pstat')
yappi.clear_stats()
def func1():
time.sleep(2)
def func2():
time.sleep(2)
with YappiProfile():
func1()
func2()
运行完成后会生成一个 profile.prof 文件
import pstats
# 读取 profile.prof 文件
p = pstats.Stats('profile.prof')
# 打印出所有函数的性能统计信息
p.sort_stats('cumulative').print_stats()

浙公网安备 33010602011771号