Python - 测量脚本中使用的内存量

时间:2017-03-16 21:27:37

标签: python memory profiling

我有一个Python脚本,我想测量它使用的内存量。我试过memory_profiler,但我找不到合适的选择。

我想要一些我可以用作的东西:

results = {}
for i in range(10):
    l = [1]*i*1000
    memory = compute_used_memory()
    results[i] = memory

以了解在程序的不同阶段使用的内存量。

修改 我没有太多经验,但我会尝试更好地解释问题。我需要在一台机器上部署我的代码,我只能访问有限的内存(例如1 GB)。因此,我需要知道我的代码将使用多少内存。随着代码将逐渐增加复杂性,我需要确保使用的内存量收敛到最大值。出于这个原因,我需要测量在执行的不同阶段使用的内存量如何变化,在这种情况下由for循环表示 。

2 个答案:

答案 0 :(得分:2)

< p>嗯,如果您使用的是python3.4及更高版本,则可以使用tracemalloc模块< / p> < pre>< code>导入tracemalloc tracemalloc.start() profiled_code_here 打印("当前:%d,峰值%d"%tracemalloc.get_traced_memory()) < /代码>< /预>

答案 1 :(得分:0)

我猜Python3所以尝试使用"资源"模块。 getrusage功能应该为您提供所需的功能。

Start here

示例编辑:

import resource
for i in range(10):
    l = [1] * i * 1000
    memory = resource.getrusage(resource.RUSAGE_SELF)
    print(memory.ru_utime)

该函数返回一个具有各种属性的对象,您可以访问它们(查看每个属性的文档)。