问题标签 [guppy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 探查器无法识别的 Python 内存泄漏
该程序可以正常运行数天,但在某个随机点它开始增长约 60MB/小时。
- 像 guppy 和 pympler 这样的分析器不会显示内存泄漏。(他们显示使用了 ~30mb,而 ps 常驻内存使用量为 1.5GB)
- Gdb-heap C 分析器将大量内存块显示为“未分类”。
- Gc.collect 没有显示垃圾收集问题。
- 我们不使用任何非默认 C 库,所以我不认为这是 C 级泄漏。
那是死胡同吗?可以做其他事情来找到问题吗?
python - 如何用 guppy 解释 Pythone 内存使用情况?
我正在使用代码进行地球物理时间序列的光谱估计。
我懂了:
如果我采用 1000 点的时间序列(以前的情况是 500 点),我得到了相同的结果:
所以这意味着时间序列加倍(我可以看到)没有任何变化。如何解释这个?对我来说是guppy
正确的选择吗?
python - 安装 Guppy (Python 3) 时,如何修复“'initsetsc' 之前的预期声明说明符”?
编辑:https ://stackoverflow.com/a/38860927/1112524抱歉
当我尝试安装guppy/heapy进行内存分析时,
我明白了
我怎样才能解决这个问题?
我尝试从这个问题安装东西,但它没有用
错误:安装脚本退出并出现错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1
另外,刚才我碰巧尝试了Python 2
它奏效了。
django - Django + Django Rest Framework + mod_wsgi 的内存泄漏
我有以下代码,其中我有一个基于函数的视图,它使用 ModelSerializer 序列化数据。我用 apache + mod_wsgi 运行它(为了简单起见,有 1 个工作线程、1 个子线程和 1 个 mod_wsgi 线程)。
有了这个,我的内存使用量显着增加(200M - 1G,基于查询的大小)并保持在那里并且即使在请求完成时也不会下降。在对同一视图/url 的后续请求中,内存每次都会略有增加,但不会有明显的跳跃。为了排除 django-filter 的问题,我修改了我的视图并自己编写了过滤查询。
通常怀疑 DEBUG=True 被排除,因为我没有在 DEBUG 模式下运行。我什至尝试使用 guppy 来查看发生了什么,但我无法使用 guppy。有人可以帮忙为什么请求完成后内存使用量没有下降以及如何调试它?
更新:我正在使用默认的缓存设置,即我根本没有定义它,在这种情况下,我假设它将使用本地内存作为文档中提到的缓存。
python - 无法将 Guppy 安装到我的项目中
我目前面临一个奇怪的问题,我无法guppy
使用以下命令将包成功安装到我的项目中:
pip install guppy
控制台结束于:
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/python3/3.6.0/框架/Python.framework/Versions/3.6/include/python3.6m -c src/sets/sets.c -o build/temp.macosx-10.12-x86_64-3.6/src/sets/sets.o src/sets/sets .c:77:1: 错误:函数声明符 INITFUNC (void) ^ src/sets/sets.c:39:18 后的预期函数体:注意:从宏“INITFUNC”扩展#define INITFUNC initsetsc ^ 1 生成错误。错误:命令“clang”失败,退出状态为 1
命令“/Users/unifiedloaner/.virtualenvs/communique/bin/python3.6 -u -c”导入setuptools,tokenize;file ='/private/var/folders/kb/ynmw5jys2_ddb7_1qy8x6l7r0000gr/T/pip-install-r90baffb/guppy/setup.py';f=getattr(tokenize, 'open', open)( file );code=f.read ().replace('\r\n', '\n');f.close();exec(compile(code, file , 'exec'))" install --record /private/var/folders/kb /ynmw5jys2_ddb7_1qy8x6l7r0000gr/T/pip-record-mbb2utye/install-record.txt --single-version-externally-managed --compile --install-headers /Users/unifiedloaner/.virtualenvs/communique/bin/../include/ site/python3.6/guppy" 失败,错误代码 1 在 /private/var/folders/kb/ynmw5jys2_ddb7_1qy8x6l7r0000gr/T/pip-install-r90baffb/guppy/
我在我的 virtualenv 中使用 pip 10.0.0 和 Python 3.6communique
python - 使用 scapy 会话的内存泄漏
目前在 centos 7.4 上运行的 python 2.7 上的 scapy 2.4.0 内存使用率很高
最初我认为这是由于https://bitbucket.org/secdev/scapy/issues/5149/rdpcap-and-wrpcap-file-descriptor-leak造成的,但这已在不久前修复。
在另一个 python 文件中
为代码中的一些错误道歉,但它在离线系统上,所以只是添加了我正在做的粗略部分。
每次我绕过循环时,上一个循环的内存都有可能保留下来,这只会复合,直到我没有剩下的内存(上面的代码中没有提到,但是有一些逻辑可以忽略任何 pcap 是大于盒子上可用内存的 1/4,以确保 scapy 可以打开它并提取会话)
根据Using heapy to track down memory leaks in Django app,堆数量代表了python正在使用的内存,而不是任何底层c代码。我假设scapy在下面使用c?
python - 如何使用 python 的 guppy 打印所有行
我正在使用 python 的 guppy 来查看 python 程序中的堆使用情况。我愿意:
这是产生的输出:
如何打印所有行?
python - 薛定谔内存泄漏 - 在 hpy 初始化泄漏消失
我注意到我的 python 代码有内存泄漏,并且正在调试它。我从 guppy 导入 hpy 并初始化它(h = hpy()),泄漏消失了。一旦该初始化被注释掉,泄漏就会返回。在 hpy 初始化期间是否发生了可能导致这种情况的事情?据我了解,它应该只是一个堆监视器,所以除非它调用垃圾收集器或其他东西,否则它不应该“解决”我的问题。
我主要专注于隔离代码中的内存泄漏,我觉得它来自我正在导入的外部库。主要是一个名为 LAMMPs 的编译软件,带有 Python 共享库设置。我尝试删除对象,手动调用python垃圾收集器等。我发现guppy可以用来帮助隔离内存泄漏,因此正要尝试使用它;但是,注意到一旦我导入并初始化 guppy,泄漏就消失了(实际上使现在更难调试......)。
memory_monitor_code.py
泄漏代码.py
python - 内存分析,如何找到与对象关联的变量名
我有一个 Python 应用程序,它会消耗 GB 的数据。为了跟踪我安装的内存使用情况,guppy
并在一个时间单位后打印堆,我在报告中看到以下内容。
现在,在我的应用程序的几十个模块中创建了 BinaryValue 类型的对象。要进行调试,我必须获取这些对象的行号/文件名/变量名。那么有什么方法可以获取这些信息吗?如果不是,那么我可以使用什么策略来解决问题的根源?
注意:由于 python 应用程序与 C 程序紧密耦合,因此无法以交互方式运行 python 代码,并且必须直接在代码中检测任何调试步骤。