【发布时间】:2018-02-06 08:02:44
【问题描述】:
使用 Python 2.7.x 系列,我遇到以下问题,我需要一个 dict 结构,以便在 D[key] = value 的基础上快速访问,所以 dict 应该是完美的。
顺便说一句,我有MemoryError,因为我需要在内存中有两个对象族,它们都很大(数亿)并且链接:这个字典以及链接树对象的结构(实际上尝试) .
是否有任何替代 dict python 对象具有非常低的内存占用?
值将是一个“id”(字符串),键是一个 * Unicode * 字符串(所以对于重音字符和其他奇怪的字符,我似乎无法将 intern 构造用作 Unicode)。
是否有任何工具可以帮助我,即使散列过程的性能略有下降(不是太多;))。这种设计有哪些常见的良好实践? (我想避免依赖外部数据库的解决方案,因为这个过程已经很慢了,而且我需要太多的这些对象访问。)
【问题讨论】:
-
你的意思是
low memory footprint而不是low fingerprint memory? -
python > 3.6 字典
-
你说相反的话:你需要快速访问所以不要访问外部数据库,同时你没有足够的内存。我只能看到两种方法:使用更快的磁盘或购买额外的内存...
-
@ReblochonMasque 他们不是已经在 3.6 中变得更好了吗?
-
是的,我的错;我的意思是从 3.6 开始
标签: python dictionary memory-efficient