解决python字典结构内存暴涨问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决python字典结构内存暴涨问题相关的知识,希望对你有一定的参考价值。

背景:当读取一个key value数据的时候,python的字典结构会造成内存使用扩10倍左右,无可容忍。此文解决这个问题

数据:word2vec训练的结果,word对应400维的词向量。词表共1.6G左右

解决方案:利用python的class array进行解决。

步骤:1、将原始数据,转化成key,index和 二进制的value数据块文件,其中二进制的value数据块大小为750M

技术分享

 

2、array加载后按照索引进行查询  效果:只占用了800M左右内存,大大缩小了内存的使用。查询采用:vec[i] += word2vec_array[index*word2vec_dim + i]

技术分享

 

 

 

培治

以上是关于解决python字典结构内存暴涨问题的主要内容,如果未能解决你的问题,请参考以下文章

如何用内存高效的数据结构替换大型 python 字典?

Python字典的嵌套——用于决策树存储树结构

Python学习笔记--数据结构之字典dict

深入理解 Python 虚拟机:字典(dict)的优化

Python第五课(字典)

解决Python 字典写入文件出行首行有空格的解决方法