首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表格格式中使用hdf时是否存在内存泄漏?

在表格格式中使用hdf时是否存在内存泄漏?
EN

Stack Overflow用户
提问于 2014-12-01 20:43:53
回答 1查看 313关注 0票数 1

在pandas下,每次我使用表格格式而不是固定格式,我的内存消耗就会爆炸式增长。

代码语言:javascript
运行
复制
import numpy as np
np.random.seed(seed=10)
df = pd.DataFrame ({'ID' : ['foo', 'bar'] * 10000000,
                'ORDER' : np.arange(20000000),
         'VAL' : np.random.randn(20000000)})

案例#1 :固定格式

代码语言:javascript
运行
复制
df.to_hdf('test.h5','df',append=False,format ='fixed')

现在,我读了十倍十倍的df,我的工作没有高内存消耗

代码语言:javascript
运行
复制
for a in range(10):
    df1 = pd.read_hdf('test.h5','df')

案例#2 :表格格式

代码语言:javascript
运行
复制
df.to_hdf('test.h5','df',append=False,format ='table')

现在,我读了十次十次df,它没有在每个itération.memory上释放内存消耗变得很高

代码语言:javascript
运行
复制
for a in range(10):
    df1 = pd.read_hdf('test.h5','df')

有什么建议吗?

windows 64位python 3.4,pandas 0.15.1

EN

回答 1

Stack Overflow用户

发布于 2014-12-02 19:57:47

使用较小的文件n=1MM。

他们的表格式分配了大约2倍的内存,然后收集它。这主要是存储格式的功能。

代码语言:javascript
运行
复制
In [12]: %mprun -f f f()
Filename: test.py

Line #    Mem usage    Increment   Line Contents
================================================
     5    115.1 MiB      0.0 MiB   def f():
     6    125.8 MiB     10.7 MiB       pd.read_hdf('test.h5','df')
     7    125.8 MiB      0.0 MiB       gc.collect()
('',)

In [13]: %mprun -f f2 f2()
Filename: test.py

Line #    Mem usage    Increment   Line Contents
================================================
     9    125.8 MiB      0.0 MiB   def f2():
    10    228.5 MiB    102.7 MiB       pd.read_hdf('test2.h5','df')
    11    115.0 MiB   -113.5 MiB       gc.collect()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27228701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档