我知道使用kerprof / profile / cProfile分析独立脚本的方式。但是,如何配置作为后台服务/长时间运行的应用程序运行的python Web应用程序
答案 0 :(得分:1)
经过深入研究并探索潜在的解决方案;我提出了以下解决方案:
将以下函数添加到源文件中并使用@do_cprofile修饰原始函数以进行概要分析
import cProfile
def do_cprofile(func):
def profiled_func(*args, **kwargs):
profile = cProfile.Profile()
try:
profile.enable()
result = func(*args, **kwargs)
profile.disable()
return result
finally:
profile.dump_stats('/tmp/profile_bin.prof')
return profiled_func
将生成的/tmp/profile_bin.prof
转换为人类可读文件
import pstats
f = open('/tmp/human_readable_profile.prof', 'w')
stats = pstats.Stats('/tmp/profile_bin.prof', stream=f)
stats.sort_stats('cumulative').print_stats()
f.close()