如何确定函数的CPU和内存成本?

15 投票
1 回答
8852 浏览
提问于 2025-04-17 10:47

有人能推荐一下,怎样才能最好地了解以下两个问题吗:

  1. 在执行一个Python函数时,使用了多少CPU周期
  2. 这个Python函数使用了多少内存

我之前看过guppymeliae这两个库,但还是无法精确到函数级别?我是不是漏掉了什么?

更新 提这个问题是因为我们遇到一个具体的情况:我们有一组分布式任务在云实例上运行,现在需要重新安排这些任务在集群中合适的实例类型上,比如说高内存消耗的功能性任务就应该放在内存更大的实例上。这里说的任务(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)
...

另外,内存也需要一个分析工具:
一些开源的分析工具有:PySizerHeapy

撰写回答