【问题标题】:On python with numpy/scipy len() cProfile result [duplicate]在 python 上使用 numpy/scipy len() cProfile 结果 [重复]
【发布时间】:2012-06-23 06:24:26
【问题描述】:

可能重复:
How can you profile a Python script?

我使用cProfile 找出我大部分时间在我的python代码上花费的方法,这里是“percall”排序后的输出:

我发现len()这个方法花了我大部分时间:

53515/533   330 930 0   940 00{len}

但是,我知道len() 调用会调用python 对象__len__() 方法,我怎么知道哪个python 类/对象花费我最多?

我使用的是 python 2.6.5 并使用以下命令运行我的脚本:

python -m cProfile myscript.py

实际上,我的代码将使用python-numpyscipy 并使用牛顿法进行数值优化。我相信目标函数的梯度计算花费了我大部分时间,并想找出它花费这么多的原因。

【问题讨论】:

    标签: python numpy scipy cprofile


    【解决方案1】:

    cProfile 为每个函数提供两次:在此函数中花费的总时间(包括子调用)和在此函数中花费的总时间(不包括子调用)。要检测瓶颈,您通常会根据这两个指标考虑最大的成本。

    在您的情况下,我会寻找大量调用 len 的函数,看看是否可以将值存储在某处以避免不必要的调用。

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2020-05-22
      • 2018-08-09
      • 2010-12-26
      • 2014-02-12
      • 1970-01-01
      相关资源
      最近更新 更多