从函数中调用 Python cProfile。 (或其他在 Django 中使用 cProfile 的方式)
Posted
技术标签:
【中文标题】从函数中调用 Python cProfile。 (或其他在 Django 中使用 cProfile 的方式)【英文标题】:Call Python cProfile from within a function. (Or other way to use cProfile with Django) 【发布时间】:2012-09-03 13:00:08 【问题描述】:如何从函数中调用 cProfile,使用它来调用和分析另一个函数?
我有一个函数 start(),它是从我的网页调用的(使用 Django)。在这个函数中,我放置了 cProfile 调用:
cProfile.run('my_function()')
这给了我错误“未定义名称 my_function”。但是,如果我只是进行正常的函数调用,则调用该函数没有问题:my_function()
一切都说要使用 cProfile 执行“main”函数,但我真的没有一个 main 函数或一个明显的方式来运行我的程序,除了从网页。
【问题讨论】:
【参考方案1】:您需要runctx
而不是run
。
您可以将全局变量和局部变量传递给cProfile.runctx
调用,如下所示:
cProfile.runctx('my_function()', globals=globals(), locals=locals())
【讨论】:
以上是关于从函数中调用 Python cProfile。 (或其他在 Django 中使用 cProfile 的方式)的主要内容,如果未能解决你的问题,请参考以下文章
Python cProfile:如何从分析数据中过滤掉特定的调用?
调用 numba jit 函数时,cProfile 会增加大量开销
python cprofile 显示了很多信息。可以仅限于我的代码吗