2024-03-28 08:46:12 发布
网友
我有一个用Python编写的HTTP服务器,它接受一个大的二进制文件(大于50MB),并对文件执行一些与文件相关的计算(解密、解压缩…)。我想得到一个很好的估计执行这些操作所需的时间量。我的python服务器运行在ubuntu11.10上的多CPU和多核服务器上。在
目前我只是做一个时间差(date.now())来获得各种操作的执行时间。我知道有几个Python模块提供了分析功能。但是,我的理解是它们仅限于小代码段。在
date.now()
我还有什么选择?在
谢谢。在
我想说cProfile是相当可靠的,而且在使用类似日期。现在(). 下面是cProfile生成的,用于比较无用的和稍微不太有用的fibonacci生成器。
$ python -m cProfile script.py 4113777 function calls (1371305 primitive calls) in 1.337 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.000 0.000 cProfile.py:5(<module>) 1 0.000 0.000 0.000 0.000 cProfile.py:66(Profile) 1 0.009 0.009 1.337 1.337 script.py:1(<module>) 2692508/30 1.069 0.000 1.268 0.042 script.py:3(fib) 74994/25000 0.058 0.000 0.058 0.000 script.py:9(fibber) 1346269 0.200 0.000 0.200 0.000 {max} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 2 0.001 0.000 0.001 0.000 {range}
以下是我使用的代码:
cProfile非常清楚地告诉我fib的运行速度有多慢,并给出了每次调用的时间/调用次数以及在该方法中花费的总时间的良好数据。显然,这是一个琐碎的/玩具代码,但是我经常使用cProfile来了解我的代码花费的时间最多的地方,并且我发现它对于非琐碎的代码非常有效。我想它会给你你需要的数据。
我想说cProfile是相当可靠的,而且在使用类似日期。现在(). 下面是cProfile生成的,用于比较无用的和稍微不太有用的fibonacci生成器。
以下是我使用的代码:
^{pr2}$cProfile非常清楚地告诉我fib的运行速度有多慢,并给出了每次调用的时间/调用次数以及在该方法中花费的总时间的良好数据。显然,这是一个琐碎的/玩具代码,但是我经常使用cProfile来了解我的代码花费的时间最多的地方,并且我发现它对于非琐碎的代码非常有效。我想它会给你你需要的数据。
相关问题 更多 >
编程相关推荐