gpt4 book ai didi

python - mod_python Trac实例性能分析

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:34 24 4
gpt4 key购买 nike

我想在我们的真实世界的 Trac/mod_python 安装中启用侧日志记录,它已经变得非常慢(很多插件,没有那么多票/页面)。

我能否以某种方式代理请求对象,或添加python 跟踪(每次调用都有时间戳)?是否有针对此类包装器的机制?

Trac/mod_python 中的主要入口点是

def handler(req):
pkg_resources.require('Trac==%s' % VERSION)
gateway = ModPythonGateway(req, req.get_options())
from trac.web.main import dispatch_request
gateway.run(dispatch_request)
return apache.OK

我想我应该安装一个包装器,它可以通过所有插件跟踪 python 调用以进行时序分析。可能吗?

最佳答案

使用 cProfile模块,像这样的东西应该可以工作:

def handler(req):
pkg_resources.require('Trac==%s' % VERSION)
gateway = ModPythonGateway(req, req.get_options())

from trac.web.main import dispatch_request
import cProfile
from datetime import datetime

def profile_request(*args, **kwargs):
p = cProfile.Profile()
p.runcall(dispatch_request, *args, **kwargs)
# log to a file
timestamp = datetime.now().strftime('%Y-%m-%d_%H%M%S.%f')
p.dump_stats('/var/log/trac_profile/%s' % timestamp)

gateway.run(profile_request)
return apache.OK

然后应对每个请求进行概要分析,并将概要分析数据(显示占用时间的内容)保存在指定位置,每个请求一个带时间戳的文件。当然,正在运行的进程必须具有对该文件的写权限。

您可以更改源中的文件。

关于python - mod_python Trac实例性能分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com