如何确定函数的CPU和内存成本?
有人能推荐一下,怎样才能最好地了解以下两个问题吗:
- 在执行一个Python函数时,使用了多少CPU周期?
- 这个Python函数使用了多少内存?
我之前看过guppy和meliae这两个库,但还是无法精确到函数级别?我是不是漏掉了什么?
更新 提这个问题是因为我们遇到一个具体的情况:我们有一组分布式任务在云实例上运行,现在需要重新安排这些任务在集群中合适的实例类型上,比如说高内存消耗的功能性任务就应该放在内存更大的实例上。这里说的任务(celery-tasks),其实就是一些普通的函数,我们现在需要分析它们的执行情况。
谢谢。
1 个回答
9
你可能想了解一下Python的CPU分析工具
:
http://docs.python.org/library/profile.html
这是使用cProfile.run(command[, filename])
的一个示例输出
2706 function calls (2004 primitive calls) in 4.504 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
2 0.006 0.003 0.953 0.477 pobject.py:75(save_objects)
43/3 0.533 0.012 0.749 0.250 pobject.py:99(evaluate)
...