问题标签 [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.
c - 如何在 dbx 中的内存位置设置断点?
一位同事的 C 程序由于某些损坏的内存而以可预测的方式失败。他想dbx
在分配内存位置后使用它来监视内存位置,以查明导致损坏的代码。
这可能吗?如果是这样,在损坏时产生断点的语法是什么?
如果没有,解决此类问题的好方法是什么?
(我通常的策略是查看源代码管理以查看我最近所做的更改,因为这通常是原因。但是有问题的代码听起来好像它只是靠运气才能工作,所以那是行不通的。还有,由于从未使用过代码,我已经将自己作为罪魁祸首消除了。;-)
c++ - Finding the type of an unknown object in C++
There are many ways to check programs for memory leaks. You end up with that list of pointers to leaked memory blocks, but is there a good way to find out more information for each block? For example: if I know that the object was a string, the actual string value could make finding the leak a lot easier.
Is there a backdoor into RTTI that makes that possible?
Problems to solve would be that by the time you get the pointers the runtime system is already in a state of shutdown and you get raw memory block pointers instead of pointers to objects (though in many cases that might be the same).
c++ - 我认为 STL 导致我的应用程序的内存使用量增加了三倍
我在我的应用程序中输入了一个 200mb 的文件,由于一个非常奇怪的原因,我的应用程序的内存使用量超过了 600mb。我已经尝试过vector和deque,以及std::string和char *,但无济于事。我需要我的应用程序的内存使用与我正在阅读的文件几乎相同,任何建议都会非常有帮助。是否存在导致如此多内存消耗的错误?你能查明问题还是我应该重写整个事情?
Windows Vista SP1 x64, Microsoft Visual Studio 2008 SP1, 32Bit Release Version, Intel CPU
到目前为止的整个应用程序:
objective-c - 使用垃圾收集时新创建的 Cocoa 应用程序中的内存泄漏?
我决定将 GC 用于我最新的 Cocoa 项目的内存管理,我发现了一些有趣的东西——如果我在 Xcode 中创建一个全新的 Cocoa 应用程序项目,将 GC 设置为支持或必需(我都尝试过),构建并运行它泄漏,它显示内存泄漏!
主要是 NSCFData、GeneralBlock、CGEvent、CFDictionary、CGSRegion 等类型的对象的大量微小泄漏。
重现步骤:
- 文件->新建项目->Cocoa应用
- 项目->编辑项目设置->GC 必需(或支持,任一)
- 构建->构建
- 运行->使用性能工具运行->泄漏
- 等待泄漏检测触发(我将其设置为 10 秒,默认为 30)
大约 80% 的时间我会泄漏大约 2-20 Kb 的上述各种对象。
其他人有同样的行为吗?
编辑:我通过重命名 InputManagers 文件夹测试了以下情况(此时日志消息消失了,所以它们肯定不再被加载)并且仍然出现内存泄漏。因此,这似乎与它无关。我把文字留在那里,所以阿什利克拉克的回答仍然有意义。
我知道的唯一奇怪的情况是,每当我运行启用了 GC 的应用程序时,我都会在控制台中收到以下消息:
我猜这与这两个插件试图加载到每个启动的程序中有关,而不仅仅是 Safari(它们是它们的插件)。我不确定这是否与此有关,但这似乎绝对是一种可能性。我无法方便地使用带有开发工具的干净而不是 OS X 10.5 来测试在没有 SAFT 或 Inquisitor 的原始安装上是否会发生同样的事情。
c++ - 释放不会释放 Windows/C++ 应用程序中的内存
我的 Windows/C++ 应用程序使用操作员在内存中分配 ~1Gb 的数据new
并处理这些数据。处理后数据被删除。
我注意到,如果我在不退出应用程序的情况下再次运行处理,则对操作员的第二次调用以new
分配 ~1Gb 的数据会失败。
我希望 Windows 能够将内存返回。这可以通过其他一些 Win32 调用等以更好的方式进行管理吗?
c++ - 如何检测 WinCE C/C+ 运行时库下的泄漏?
我知道使用crtdbg.h头文件对 Win32 进行基本泄漏检测的可能性,但是这个头文件在 CE CRT 库头文件中不可用(我使用的是最新的 SDK v6.1)。
任何人都知道如何使用 VC 9.0 自动检测 WinCE/ARMV4I 配置中的泄漏?我不想为我的类层次结构覆盖 new/delete,我更愿意准备好使用和测试过的代码。
c++ - 在 C++ 中检查内存泄漏的最佳方法是什么?
我正在用链表实现一个稀疏矩阵,手动检查泄漏并不好玩,有什么想法吗?
c++ - 将新分配的数据直接传递给函数
在学习不同的语言时,我经常看到动态分配的对象,最常见的是在 Java 和 C# 中,如下所示:
我知道这在内存管理语言中是完全合法的,但是这种技术可以在 C++ 中使用而不会导致内存泄漏吗?
.net - 循环引用导致内存泄漏?
我正在尝试解决 Windows 窗体应用程序中的内存泄漏问题。我现在正在查看一个包含多个嵌入式表单的表单。让我担心的是,子表单在其构造函数中引用了父表单,并将其保存在私有成员字段中。所以在我看来,垃圾收集时间到了:
父通过控件集合引用子表单(子表单嵌入其中)。子表单不是 GC'd。
子表单通过私有成员字段引用父表单。父表单不是 GC'd。
这是对垃圾收集器如何评估情况的准确理解吗?有什么方法可以“证明”它以用于测试目的?
c# - 避免数组重复
根据 [MSDN:阵列使用指南](http://msdn.microsoft.com/en-us/library/k2604h5s(VS.71).aspx):
数组值属性
您应该使用集合来避免代码效率低下。在以下代码示例中,每次调用 myObj 属性都会创建一个数组副本。结果,将在以下循环中创建数组的 2n+1 个副本。
除了从 myObj[] 更改为 ICollection myObj 之外,您还有什么推荐的?刚刚意识到我当前的应用程序正在泄漏内存:(
谢谢;
编辑:强制 C# 传递带 ref 的引用(安全除外)会提高性能和/或内存使用吗?