在python-cod中分析服务器端执行时间的选项

2024-03-28 08:46:12 发布

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

我有一个用Python编写的HTTP服务器,它接受一个大的二进制文件(大于50MB),并对文件执行一些与文件相关的计算(解密、解压缩…)。我想得到一个很好的估计执行这些操作所需的时间量。我的python服务器运行在ubuntu11.10上的多CPU和多核服务器上。在

目前我只是做一个时间差(date.now())来获得各种操作的执行时间。我知道有几个Python模块提供了分析功能。但是,我的理解是它们仅限于小代码段。在

我还有什么选择?在

谢谢。在


Tags: 模块文件功能服务器httpdate代码段时间
1条回答
网友
1楼 · 发布于 2024-03-28 08:46:12

我想说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}

以下是我使用的代码:

^{pr2}$

cProfile非常清楚地告诉我fib的运行速度有多慢,并给出了每次调用的时间/调用次数以及在该方法中花费的总时间的良好数据。显然,这是一个琐碎的/玩具代码,但是我经常使用cProfile来了解我的代码花费的时间最多的地方,并且我发现它对于非琐碎的代码非常有效。我想它会给你你需要的数据。

相关问题 更多 >