python - 如何通过 gc.get_objects() 查找导致内存泄漏的新创建的对象
问题描述
我一直在尝试通过监控创建的对象数量来解决我的代码中的内存泄漏问题。为了给出一个简短的概述,我有一个 PyTorch 模块,它通过迭代地进行预测并在给定数量的 epoch 上最小化错误来训练解决问题。
我一直在使用该包gc
来监视在我的脚本中创建的对象的数量,并且它缓慢上升(RAM 使用量也是如此)。每个时代都有大约 200mb-400mb 的 RAM 增加。有没有办法查看哪些对象是新的/不同的时期?即抓住两个不同的gc.get_objects()
,看看它们在内存大小上有何不同?而且,更重要的是,查看哪些 python 行导致这些对象的内存使用量增加,这导致了我的内存泄漏!
解决方案
推荐阅读
- search - 如何在多个 DOCX 文件中搜索 Word 字段中的字符串?
- javascript - 如果阈值为 Number.MIN_VALUE,则在数组中查找超过某个阈值的最小值的函数不会找到低于 1 的数字。如何解决这个问题?
- python - Python 数据相关错误:列表索引必须是整数或切片,而不是 str
- c - 在不同上下文中使用“绑定”系统调用的“地址已在使用”(EADDRINUSE)问题
- node.js - 谷歌云功能节点JS SFTP到云存储传输文件错误
- powershell - Powershell 压缩存档
- xcode - 如何将 Xcode 上的编译器更改为 gcc 7.3.0?
- c++ - 在 arduino/c/c++ 中使用字节序操作重新排序 24 位字节数组的字节顺序?
- javascript - Vue.js: Using mixin functions inside vue.router routes
- javascript - 使用滚动条定位表格以填充页面