我通过python程序运行了cProfiler。这是一个具有spacy依赖关系的py spark应用程序。
我正在解析句子以具有最长的累积时间
ncalls tottime percall cumtime percall filename:lineno(function)
509410/414094 6.535 0.000 7446.983 0.018 spacy_utils.py:122(nlp)
这个结果非常令人困惑,我希望主要方法具有最大的累积时间。主要方法的信息是
2/1 0.000 0.000 88.052 88.052 main_job.py:28(execute)
我感到困惑的是:
1)为什么累积时间不是最大,因为我知道这是主要功能?
2)ncalls值是2/1,但我知道此函数仅被调用一次。
这里可能是什么问题?我重新阅读了cprofiler和stats文档,因此无法对此问题发表意见。
可能有助于调试的信息:
我正在使用cProfile.runctx进行分析。
我正在使用以下方式生成报告
p = pstats.Stats('total_profile_dump')
p.strip_dirs().sort_stats('cumulative')
p.print_stats(10)
13679.780是我的应用程序花费的总时间。
另一个令人困惑的事情是,当我运行p.print_callees()方法时 我得到了预期的结果。主要方法的时间与我的应用程序运行时间匹配。
Function called... ncalls tottime cumtime
<string>:1(<module>) -> 1 0.000 13679.781 main_job.py:28(execute)
请帮助!