释放与 IPython Notebook 中的错误相关的内存
Freeing memory tied to errors in IPython Notebook
我有时会在 IPython 笔记本中处理非常大的数据集。有时单个 pandas DataFrame 会占用 1+GB 的内存,所以我不能保留很多副本。
我发现,如果我尝试对这样的矩阵执行操作,并且出现错误,我不会取回内存 - 某些间歇性变量仍在某处被跟踪。问题是,我不知道在哪里,也无法释放它!
例如,下图显示了重复尝试执行单元格后的内存消耗(图中的每个步骤对应于执行单元格的尝试)。每次消耗一个从未释放的新内存块。
有谁知道这段内存的去向以及如何释放它?或者,如果这是一个错误(即内存泄漏或类似问题),您如何证明这一点?如果它实际上是代码按设计执行的副作用(例如 IPython 正在缓存内容,而我只是在滥用缓存系统),我不想将其报告为错误。
谢谢!
根据 github 上关于 issue 642 的讨论,jsonschema 2.4 中存在已知的内存泄漏。更新到jsonschema 2.5.1后,这个问题就没有了
因此,如果您使用的是较旧的框架并看到此问题,则至少需要升级 jsonschema。
我有时会在 IPython 笔记本中处理非常大的数据集。有时单个 pandas DataFrame 会占用 1+GB 的内存,所以我不能保留很多副本。
我发现,如果我尝试对这样的矩阵执行操作,并且出现错误,我不会取回内存 - 某些间歇性变量仍在某处被跟踪。问题是,我不知道在哪里,也无法释放它!
例如,下图显示了重复尝试执行单元格后的内存消耗(图中的每个步骤对应于执行单元格的尝试)。每次消耗一个从未释放的新内存块。
有谁知道这段内存的去向以及如何释放它?或者,如果这是一个错误(即内存泄漏或类似问题),您如何证明这一点?如果它实际上是代码按设计执行的副作用(例如 IPython 正在缓存内容,而我只是在滥用缓存系统),我不想将其报告为错误。
谢谢!
根据 github 上关于 issue 642 的讨论,jsonschema 2.4 中存在已知的内存泄漏。更新到jsonschema 2.5.1后,这个问题就没有了
因此,如果您使用的是较旧的框架并看到此问题,则至少需要升级 jsonschema。