You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pympler asizeof统计结果与实际内存占用偏差过大的问题咨询

pympler asizeof统计结果与实际内存占用偏差过大的问题咨询

我最近在做Python内存占用的统计测试时,发现pympler库的asizeof工具给出的结果和系统实际显示的内存使用量差距非常悬殊,想请教各位大佬这是什么原因导致的?

测试代码(MWE)

以下是我用来复现问题的最小可执行代码:

from pympler import asizeof
from random import randint, choice
from string import printable
from heapq import heappush
ascii =  printable[:-5]
pq = []
for _ in range(10_000_000):
    heappush(pq, (randint(0, 31), randint(0, 31), randint(0, 31), ''.join(choice(ascii) for _ in range(16))))
print(asizeof.asizeof(pq))

内存统计结果对比

  • pympler asizeof结果:输出为1,449,096,184字节,约1.4GB;
  • 系统工具统计结果:
    1. top工具:显示进程的常驻内存(RES)约为2.7GB;
    2. /usr/bin/time -v:输出的最大常驻内存大小为2858616 KB(换算后约2.7GB),具体输出:
      Maximum resident set size (kbytes): 2858616
      
    3. Python resource模块:通过以下代码统计:
      from resource import getrusage, RUSAGE_SELF
      print(getrusage(RUSAGE_SELF).ru_maxrss * 1024)
      
      返回结果为2927054848字节,约2.9GB。

可以看到asizeof的统计结果和实际系统内存使用量差了一倍左右,请问这是哪里出了问题?

备注:内容来源于stack exchange,提问作者Simd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:29:35