Python - 测量脚本中使用的内存量
Posted
技术标签:
【中文标题】Python - 测量脚本中使用的内存量【英文标题】:Python - measure amount of memory used in script 【发布时间】:2017-03-16 21:27:36 【问题描述】:我有一个 Python 脚本,我想测量它使用的内存量。我试过memory_profiler
,但找不到适合我的选项。
我想要一些可以用作:
results =
for i in range(10):
l = [1]*i*1000
memory = compute_used_memory()
results[i] = memory
为了了解程序不同阶段使用的内存量。
编辑: 我没有太多经验,但我会尝试更好地解释这个问题。我需要将我的代码部署在只能访问有限内存(例如 1 GB)的机器上。因此,我需要知道我的代码将使用多少内存。由于代码将随着复杂性的增加而逐步运行,我需要确保使用的内存量收敛到最大值。出于这个原因,我需要测量在执行的不同阶段使用的内存量如何变化,在这种情况下由 for 循环表示 .
【问题讨论】:
这是一个棘手的问题,您可以通过几种方式来解释分配给已用内存的方式。你想要程序的总分配内存吗?你想要一个用于分配内存的百分比吗?你想在程序的特定点分配总内存吗?再澄清一点可能会有所帮助。 【参考方案1】:嗯,如果你使用的是python3.4及更高版本,你可以使用tracemalloc模块
import tracemalloc
tracemalloc.start()
profiled_code_here
print("Current: %d, Peak %d" % tracemalloc.get_traced_memory())
【讨论】:
【参考方案2】:我猜是 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)
该函数返回一个具有各种属性的对象,您可以访问这些属性(检查每个属性的文档)。
【讨论】:
我实际上需要 python 2,但 python 3 是一个好的开始 然后在这里:docs.python.org/2/library/resource.html#resource-usage 请写一个用法示例? 编辑答案只需一秒钟 返回的值中使用的内存总量是多少?以上是关于Python - 测量脚本中使用的内存量的主要内容,如果未能解决你的问题,请参考以下文章