如何使用cProfi获得更精确的结果

2024-04-26 07:18:05 发布

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

我有一个我正在分析的小片段,但是list comprehension在调用中作为一个项目列出

import fileinput
import cProfile

pr = cProfile.Profile()
pr.enable()
x = [float(i) for i in range(0, 10**8)]
pr.disable()
pr.print_stats(sort='time')

输出

     2 function calls in 19.769 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1   19.769   19.769   19.769   19.769 sandboxMinimalCProfile.py:6(<listcomp>)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

例如,有没有可能得到转换成float的成本?你知道吗


Tags: 项目inimporttimeenablefunctionprfloat
1条回答
网友
1楼 · 发布于 2024-04-26 07:18:05

这里的问题是float是一个内置的,所以它们不算作对探查器的调用。你知道吗

您可以尝试解决这个问题;但是,探查器在任何情况下都不是为微基准而设计的。相反,请尝试^{} standard module

$ python3 -m timeit 'float(1000000)'
10000000 loops, best of 3: 0.118 usec per loop

相关问题 更多 >