gpt4 book ai didi

Python 配置文件陷阱

转载 作者:行者123 更新时间:2023-11-28 23:05:07 25 4
gpt4 key购买 nike

我是一个刚开始分析我的代码的初学者,很困惑为什么 cProfile 给出的耗时与使用 time.time() 给出的时间相差如此之大。

# Python 2.7.2

import cProfile

def f(n):
G = (i for i in xrange(n))
sum = 0
for i in G:
sum += i

num = 10**6

cProfile.run('f(num)')

这给出了 2.648 秒内调用 1000004 次函数

然而使用 time.time(),我得到 0.218000173569 秒

import time

x = time.time()
f(num)
print time.time() - x

根据我的阅读,我猜这可能是因为 cProfile 的开销。是否有关于 cProfile 计时何时可能非常偏离的一般提示,或获得更准确计时的方法?

最佳答案

分析的目的是找出程序的哪些部分花费的时间最多,因此需要最多的关注。如果一个功能使用了 90% 的时间,那么您应该查看该功能以了解如何使该功能更有效率。整个运行需要 10 秒还是 1000 秒并不重要。

也许探查器为您提供的最重要的信息是某个东西被调用了多少次。这之所以有用,是因为它可以帮助您找到经常不必要地调用事物的地方,尤其是当您有嵌套循环或许多调用其他函数的函数时。探查器可帮助您跟踪这些内容。

分析开销是不可避免的,而且很大。但是让探查器做它做的事情比在各处插入您自己的计时和打印语句要容易得多。

关于Python 配置文件陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6638313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com