从函数中调用 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:如何从分析数据中过滤掉特定的调用?

python模块上的cprofile

调用 numba jit 函数时,cProfile 会增加大量开销

python cprofile 显示了很多信息。可以仅限于我的代码吗

Python程序性能分析模块----------cProfile

是否有与 Python 的 cProfile 等效的 Julia 分析器?