如何从python hotshot评测模块获取方法调用细节?

2024-09-28 21:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python hotshot profiler,它告诉我我的一个方法foo()被调用了N次,其中N是一个比我预期的大的数字。在

有没有方法可以更详细地了解foo()从何处调用?理想情况下,模块名称和行号的列表?在

(我不能只使用grep。我的代码库包含许多对foo()的调用,但我只想找到在探查器中设置的特定条件下实际执行的调用。)


Tags: 模块方法代码名称列表foo情况数字
1条回答
网友
1楼 · 发布于 2024-09-28 21:20:37

一个选项是在foo()的顶部添加一些日志记录以指示从何处调用它,只需添加以下行:

def foo():
    import traceback
    print 'foo called from', traceback.extract_stack(limit=2)[0][2]
    # previous foo() code

与其记录日志,您可能会发现维护一个全局字典更有用,在该字典中,您可以记录从不同位置调用foo()的次数。在

相关问题 更多 >