【问题标题】:Python Variable memory sizePython 可变内存大小
【发布时间】:2015-12-18 23:47:50
【问题描述】:

我正在尝试使用 pymongo 将时间序列数据保存到 MongoDB 中。但是平均对象大小是 14 字节,而我需要将其存储在 4 字节中。

问题是 Python 将变量预分配为 24 字节(或基于变量大小,更大),并且在 pymongo 中转换后是一个臃肿的集合。

例如:

x=1
sys.getsizeof(x)

24 字节

x=1000**1000
sys.getsizeof(x)

1356 字节

上面的例子是一个例子,我使用的是较小的尺寸,通常是 32 位的电压电流等 如何确保 4 字节适合 python 变量和更小的 mongoDB 时间序列集合

【问题讨论】:

  • 我很想知道您将如何将 1000**1000 放入 4 个字节中......
  • 抱歉忘了提,那是一个插图,我使用的是较小的尺寸,通常是 32 位的电压电流等

标签: python mongodb memory pymongo


【解决方案1】:

在这里,Python 对象的运行时大小几乎无关紧要 - 特别是对于小整数 - 因为存储的是对象的 bson 表示,而不是 - 显然 - Python 对象本身。

【讨论】:

  • 如果我们尝试:一个示例,对于范围 (60*24) 内的 i,每秒大约有一天的数据:collection.insert({str(i+1):list(np .random.randint(200,250,60))}) 我得到每个文档的平均对象大小为 560 个字节 我期望 60X4 240 个字节
  • 再一次:对象在 MongoDB 存储中占用的大小 1/ 不是 Python 对象在运行时的大小,2/ 是 MongoDB i>,而不是 Python。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 2012-12-31
  • 2013-11-11
  • 2010-11-22
  • 1970-01-01
  • 2011-02-10
  • 2011-02-04
相关资源
最近更新 更多