Articles of 内存泄漏

使用AFNetworking 3.1.0的iOS 10.2上的HTTP2内存泄漏

我有一个上传服务,我最近转换到HTTP2。 该服务使用NodeJS构build,而nginx是应用程序服务器的代理。 在切换到HTTP2后不久,我们注意到使用上传服务的iOS应用程序中的崩溃。 我们发现了以下结果: 启用HTTP2时,应用程序在上传大文件(1GB +)时耗尽内存。 对于上面的图片,我们上传了同样的video3次 – 前两次,http2被启用。 对于第三次上传,我们对该设置进行的唯一更改是禁用了http2,并且重新启动了Web服务器以反映该状态。 这看起来像是在iOS或AFNetworking中的一个bug(内存泄漏),但是我们还没有把它搞定。 有没有人观察过这样的事情? 有没有解决方法? 版本: nginx版本:nginx / 1.10.0(Ubuntu) Ubuntu 16.04.1 iOS 10.2 AFNetworking 3.1.0 编辑 似乎AFNetworking是罪魁祸首:

/ proc / slabinfo给了什么信息?

一个应用程序是cosuming内存。 被视为顶部的“内存使用”。 我想知道它的相应的驱动程序是否分配内存,而不是在应用程序退出时释放它。 请问/ proc / slabinfo帮我find了吗?

实现一个内存debugging器

我用ptrace(2)编写了一个debugging器,主要用于审计系统调用和redirectsubprocess的标准IO。 我也想用这个debugging器来检测内存泄漏。 我认为这可能与对系统调用brk(2)引用计数一样简单,但事实并非如此。 不幸的是(或者幸运的是),无论内存是否被正确释放,Linux似乎都会在程序结束时调用brk(2) 。 我在一个调用malloc(3)和free(3)的程序以及一个调用malloc(3)的程序中看到了这一点 – 在程序调用exit_group(2)时,它们都具有相同的brk(2)调用计数exit_group(2) ,这是返回发生(也许我可以解释这些结果不正确?)。 或者,也许exit_group(2)不等同于从主返回,我应该设置一个不同的断点来审计brk(2)的调用计数。 我在这里发现了一个类似的问题,但我还没有find答案。 据我所知,Valgrind是一个完美的工具,但会造成相当大的开销。 有没有人有有用的信息检测内存泄漏与ptrace(2) ? 用ptrace(2)可能吗? 有没有更实用的方法? 是否有内存debuggingsubprocess的API? 编辑: 如果有分配内存的其他function,我也会把它们计算在内。 在malloc的页面上,它表示mmap(2)也用于内存分配。 所以,我也会数这个。

堆大小不断增加,直到应用程序崩溃(C ++)

我想咨询这个问题 我有一个运行程序,从长远来看,它的内存不断增加,直到所有的资源耗尽,当然它崩溃(需要几天才能达到临界尺寸)。 到目前为止我所做的是使用Valgrind,发现所有内存泄漏并修复它们,但现在我仍然有一个小的内存泄漏,这是由堆增加的大小造成的,因为我使用了Valgrind块状工具。 问题是,当我使用地块,它不能运行很长时间,并导致应用程序在几个小时后崩溃。 我试图find一个小时运行的内存泄漏问题,最低门槛不能从1%的内存降低,1小时后,我可以看到内存增加,但它仍然比其他应用程序小。 所以我可以看到需要更多记忆的部分,但是我看不到哪个部分 example in valgrind output file: ->03.11% (4,377,152B) in 28 places, all below massif's threshold (01.00%) 有什么想法吗?

在C ++应用程序运行期间检查各种内存使用情况

我正在使用CentOS 7,并且正在运行一个C ++应用程序。 最近我切换到了应用程序用于各种MySQL C API函数的库的更新版本。 但是在整合新的库之后,我发现程序的内存使用量大大增加,即如果运行了一两天,应用程序就会崩溃。 确切地说,会发生什么情况是应用程序的内存使用量开始增加,直到应用程序单独占用系统总内存的74.9%,然后由系统强制closures。 有没有办法跟踪整个应用程序的内存使用情况,包括静态variables。 我已经试过valgrind的工具Massif 。 任何人都可以告诉我什么可能是增加的内存使用的可能原因或任何工具,可以让我深刻的了解如何分配内存(静态和dynamic)。 有什么工具可以告诉我们关于在Linux环境下运行的C ++应用程序的内存分配吗? 提前致谢!

Perk Tk内存泄漏

我在下面的perl Tk子程序中,在我们的小型专用LAN上的一些Centos 6机器上反复运行时出现以下错误: 0 0x95ac3b8 PVMG f=0008e507 {}(1)(3) SV = PVMG(0x9471dc0) at 0x95ac3b8 REFCNT = 3 FLAGS = (PADBUSY,PADMY,GMG,SMG,RMG,ROK) IV = 0 NV = 0 RV = 0x95c2060 PV = 0x95c2060 "" CUR = 0 LEN = 0 MAGIC = 0x95dfa38 MG_VIRTUAL = 0x28173c MG_TYPE = PERL_MAGIC_ext(~) MG_FLAGS = 0x02 REFCOUNTED MG_OBJ = 0x95c239c SV […]

redirectstdio时Linux BASH内存泄漏

我有一个内存泄漏的地方 ,但它似乎并没有涉及到我的程序。 我正在做这个大胆的陈述,基于这样一个事实:一旦我的程序终止,无论是通过正常手段,分段或中止,内存不恢复。 如果我的程序是罪魁祸首,我会认为MMU会收回所有的东西,但是这似乎并不是这样。 当我将stdout(在BASH 2.05或4版本中)redirect到一个文件时,泄漏只会发挥作用,如下所示: # my-program 但是这不是: # my-program > /mnt/sda1/log-output.txt 我在屏幕上打印的速度是<2Kb / sec。 (该文件在USB密钥上)。 有任何想法吗? 相关的问题在这里 。

运行“无限堆栈”大小的应用程序的效果是什么?

我inheritance了一些我需要维护的代码,有时候可能不稳定。 以前的人不再可以查询为什么他们在无限的堆栈设置的环境中运行应用程序,我很好奇这可能是什么效果? 应用程序似乎有一些不可预知的内存错误,我们无法find并在Valgrind下运行该应用程序不是一个选项,因为它减慢了应用程序的下降,我们实际上不能运行它。 所以任何想法,这可能是什么效果,赞赏。

内存泄漏工具的PHP? 使用LAMP

任何人都知道一个好的工具来发现PHP的memleaks? 我可以使用客户端或服务器端。 谢谢

Python脚本不能正确重启

我有一个Python脚本,我想重新启动它自己。 我发现以下几行Googlesearch: def restart_program(): """Restarts the current program. Note: this function does not return. Any cleanup action (like saving data) must be done before calling this function.""" python = sys.executable os.execl(python, python, * sys.argv) 但试过这个后,问题就变得很明显了。 我正在一个非常小的embedded式系统上运行,而且我真的很快(在这个函数的两三次迭代之后)内存耗尽。 检查进程列表,我可以看到一大堆python进程。 现在,我意识到,我可以检查进程列表并杀死所有拥有另外一个PID的进程 – 这是我必须做的还是有更好的Python解决scheme?