使用cProfiler获得奇怪的结果

时间:2018-07-04 06:38:23

标签: python spacy cprofile

我通过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)

请帮助!

0 个答案:

没有答案