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

Don*_*beo 5 python memory profiling

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

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

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

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

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

Gia*_*los 6

嗯,如果您使用的是python3.4及更高版本,则可以使用tracemalloc模块

import tracemalloc
tracemalloc.start()
profiled_code_here
print("Current: %d, Peak %d" % tracemalloc.get_traced_memory())
Run Code Online (Sandbox Code Playgroud)


Pie*_*ini -1

我猜是 Python3,所以尝试使用“资源”模块。getrusage 函数应该可以满足您的需要。

从这里开始

示例编辑:

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

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