问题标签 [memory-leaks]

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.

0 投票
38 回答
361925 浏览

c - 有没有很好的 Valgrind 替代 Windows?

当我发现 Valgrind 仅适用于 Linux 时,我正在研究 Valgrind 以帮助改进我的 C 编码/调试——我没有其他需要或兴趣将我的操作系统迁移到 Linux,所以我想知道是否有适用于 Windows 的同样好的程序。

0 投票
9 回答
30977 浏览

delphi - Delphi中检测内存泄漏的最佳工具是什么

检测内存泄漏的最佳工具是什么。

既免费又不免费。

谢谢

0 投票
5 回答
28176 浏览

memory - 如何测试内存泄漏?

我们有一个包含数百个可能的用户操作的应用程序,并考虑如何增强内存泄漏测试。

目前,它的发生方式是这样的:在手动测试软件时,如果出现我们的应用程序消耗太多内存,我们使用内存工具,查找原因并修复它。这是一个相当缓慢且效率不高的过程:问题发现较晚,并且依赖于开发人员的善意。

我们该如何改进呢?

  • 在内部检查某些操作(例如“关闭文件”)是否恢复了一些内存并记录下来?
  • 在我们的单元测试中断言内存状态(但这似乎是一项乏味的任务)?
  • 不定期手动定期检查?
  • 每次实施新的用户故事时都包括该检查吗?
0 投票
5 回答
5778 浏览

c++ - 递归 C++ 调用中的内存分配

我在递归 C++ 程序中分配和释放内存时遇到问题。因此,如果不使用自动内存管理解决方案,我想知道是否有人可以帮助我解决我遇到的内存泄漏问题。

下面的代码基本上解释了这个问题(虽然这是一个人为的例子,请纠正我所做的任何错误或简化)。

保存数字值的数字类:

执行递归的两个函数:

如您所见,递归函数中分配的内存已泄漏,但我不确定根据递归的性质我可以从哪里释放这些内存?

0 投票
3 回答
3743 浏览

c++ - Visual Studio _CrtDumpMemoryLeaks 总是跳过对象转储

我正在尝试使用 CRT 内存泄漏检测,但在 Microsoft Visual Studio 中不断收到以下消息:“检测到内存泄漏 - 跳过对象转储。” 我永远无法让它实际执行和对象转储。

我按照微软关于内存泄漏检测的文章 ( http://msdn.microsoft.com/en-us/library/e5ewb1h3(VS.80).aspx ) 中的说明进行操作,但没有成功。

在我的 stdafx.h 我有(重建整个项目):

在我的应用程序的入口点,我有:

我也希望它会以微软宣传的格式显示文件名和行号:

虽然我什至无法获得对象转储,但我注意到其他人说他们看到了这些方面的东西(即使定义了 _CRTDBG_MAP_ALLOC ):

我真的不想花时间覆盖 new 和 delete 运算符,所以我希望 CRT 调试能帮助我。如果这不起作用,我可能最终会覆盖 new 和 delete 运算符,但我真的想获得带有文件名和行号的分配信息(交叉手指)。

谢谢,基里尔

0 投票
1 回答
1626 浏览

java - 将 java.hprof.txt 转换为二进制 hprof 格式的方法?

我有一个 java.hprof.txt 文件(在 OutOfMemoryError 之后自动生成),我想将其转换为二进制 hprof 格式。有什么简单的方法可以做到这一点?

0 投票
8 回答
2357 浏览

c++ - 如何在取消工作线程中的操作时防止内存泄漏?

目前我正在开发一个包含数学分析的桌面应用程序。我正在使用 qt 作为 GUI 和用 C++ 编写的项目。当用户开始分析时,我打开一个工作线程并启动一个进度条。到目前为止一切正常,当用户取消操作时问题开始。操作很复杂,我使用了几个函数和对象,我在几个分配/释放内存次。我想了解在取消操作中恢复应该怎么做。因为可能存在内存泄漏。我应该使用哪种模式或方法来保证取消操作的稳健性和安全性?

我的想法是抛出异常,但是操作真的很复杂,所以我应该将 try-catch 放到我的所有函数中,还是有更通用的方式,模式..

编辑:问题是我的对象在作用域之间传输,所以 shared_ptr 或 auto_ptr 不能解决我的问题,Flag 想法可以,但我认为它需要这么多代码,应该有一个简单的方法。

0 投票
5 回答
23510 浏览

perl - 如何在长时间运行的 Perl 程序中找到内存泄漏?

Perl 对 GC 使用引用计数,很容易意外地进行循环引用。我看到我的程序似乎正在使用越来越多的内存,并且可能会在几天后溢出。

有没有办法在 Perl 中调试内存泄漏?附加到程序并获取各种类型的对象将是一个好的开始。如果我知道哪些对象比预期的多得多,我可以检查对它们的所有引用并希望修复泄漏。

0 投票
2 回答
427 浏览

memory-leaks - Velocity CTP2 严重的内存错误

当您创建 cachefactory 的实例然后不再使用它时,不会释放在创建对象期间使用的内存。这将对所有 Web 应用程序或可能多次创建 cachfactory 的场景产生重大影响。这种情况的症状将是异常高的内存使用进程之一,在 IIS 中,这很可能导致您的应用程序不得不更频繁地回收,因为它会更快地超出其分配的内存。

下面的代码将显示增加了大约 500MB 是的,我的意思是兆字节的内存使用量!

要复制,请将以下代码放入您的应用程序中:

对此只有两种解决方法。

  1. Velocity 团队修复了这个错误(我相信他们会的)
  2. 您需要在应用程序中的静态方法上使用相同的 cachefactory 对象,并在每次要使用缓存时引用它。(这可行,但在我看来不是最佳的。)

我还有一个缓存范围,可用于包装您的缓存方法,并将很快将其发​​布在 codeplex 上。您可以将它包装在您的缓存方法中,就像事务范围一样,它将为您管理锁定和连接。

0 投票
2 回答
2298 浏览

objective-c - 返回指向函数内分配的内存的指针

在 C 语言中,类似以下的内容将是一场灾难(即内存泄漏),因为您正在返回一个指向您永远无法释放的内存的指针:

这实际上在 Objective-C 中完全没问题,因为返回的指针指向的内存将被自动释放?就算没问题,有什么理由不被人接受吗?有什么理由喜欢 C 风格,如下所示?