如何避免pytables中的高内存使用?
我正在使用 read_where
方法从一个大大的 hdf5 文件中读取一块数据,这个数据是从 pytables.Table
(版本 3.1.1)中提取的。读取后得到的 numpy 数组大约有 420 MB,但在调用 read_where
的时候,我的 Python 程序的内存使用量却增加了 1.6GB,而且在调用结束后,这部分内存并没有被释放。即使我删除了这个数组,关闭了文件,甚至删除了 hdf5 文件的句柄,内存依然没有释放。
我该如何释放这部分内存呢?
2 个回答
0
我们需要更多关于你这个表格对象的具体信息,比如它有多大,以及分块的大小。HDF5处理分块的方式可能是导致内存占用过高的主要原因之一。
我的建议是仔细阅读这个链接:http://pytables.github.io/usersguide/optimization.html#understanding-chunking,并尝试不同的分块大小(通常可以试着把它们做得大一些)。