问题标签 [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 投票
1 回答
712 浏览

c# - 弱引用错误?

它是 .NET 3.5 SP1
谁能告诉我为什么这个测试失败了?

编辑:谢谢斯图史密斯

您有一个对字符串的引用,因为它是一个常量,所以它可能是被保留的(即不是动态分配的),并且永远不会被收集。

就是这样。将第一行更改为

并且测试通过了:-)

0 投票
15 回答
748085 浏览

java - 什么是 StackOverflowError?

什么是 a StackOverflowError,是什么原因造成的,我应该如何处理它们?

0 投票
6 回答
1028 浏览

java - java内存管理

我是一名 C++ 程序员,在找到 JPA 之后,我正在玩 java,这对于我当前的一些应用程序来说是神来之笔。从大学开始我就没有接触过java,我遇到了堆空间不足的问题。我使用下面的代码作为 jdbc/jpa/lucene 的不太严重的测试的主要部分,但我不断收到随机的 OutOfMemory 异常。

我不会发布所有的 createDocument 但它所做的只是实例化一个新的 org.apache.lucene.document.Document 并通过 add(new Field...) 等添加字段。总共大约有 50 个字段,大多数都很短长度为字符串(<32 个字符)。

在我的新手中,我正在做(或不做)一些完全愚蠢的事情会导致事情不被 GC 处理吗?

是否有关于 java 内存管理和 GC 的最佳实践?

0 投票
4 回答
2053 浏览

sharepoint - 正确处置 SharePoint 对象?

我希望这里有一个关于 SO 的 SharePoint 专家可以提供帮助。

这就是问题所在。我的 SharePoint 日志多次包含此行:

An SPRequest object was not disposed before the end of this thread. To avoid wasting system resources, dispose of this object or its parent (such as an SPSite or SPWeb) as soon as you are done using it. This object will now be disposed. Allocation Id: {8D090AD2-5D55-42C2-9873-2D5486FE257C} To determine where this object was allocated, create a registry key at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\HeapSettings. Then create a new DWORD named SPRequestStackTrace with the value 1 under this key.

我编辑了注册表并添加了密钥,但找不到堆栈跟踪。它不在 SharePoint 日志或事件查看器中。

我真的需要找到这些 SPSite/SPWeb 泄漏的来源并修复它们,但我不能只是开始编辑可能是也可能不是问题根源的代码。有没有人有什么建议?

0 投票
5 回答
5514 浏览

.net - 在 .Net 中打开 XPS 文档会导致内存泄漏

以下代码片段说明了打开 XPS 文件时的内存泄漏。如果你运行它并观察任务管理器,它会增长并且在应用程序退出之前不会释放内存。

'****** 控制台应用程序开始。

'****** 控制台应用程序结束。

它循环一千次的原因是因为我的代码处理了大量文件并快速泄漏内存,从而导致 OutOfMemoryException。强制垃圾收集不起作用(我怀疑它是 XPS 内部的一块非托管内存)。

该代码最初位于另一个线程和类中,但已简化为此。

非常感谢任何帮助。

瑞安

0 投票
2 回答
15990 浏览

c# - C# WPF 中的内存泄漏

我可以使用一些建议来追踪 C# 中内存泄漏的原因。我了解什么是内存泄漏,并且知道它们为什么会在 C# 中发生,但我想知道您过去使用过哪些工具/策略来解决它们?

我正在使用.NET Memory Profiler,我发现我的一个巨大的主要对象在我关闭它管理的窗口后仍留在内存中,但我不确定如何处理它的所有链接。

如果我不够清楚,只需发布​​一个问题的答案,我将编辑我的问题作为回应。谢谢!

0 投票
11 回答
3249 浏览

c++ - 内存泄漏是否有可接受的限制?

我刚刚开始在 C++ 中尝试使用 SDL,我认为定期检查内存泄漏可能是早期形成的一个好习惯。

考虑到这一点,我一直在通过 Valgrind 运行我的“Hello world”程序以捕获任何泄漏,尽管我已经删除了除了最基本的SDL_Init()SDL_Quit()语句之外的所有内容,但 Valgrind 仍然报告丢失了 120 个字节并且仍然可以访问 77k。

我的问题是:内存泄漏是否存在可接受的限制,或者我应该努力使我的所有代码完全无泄漏?

0 投票
12 回答
85484 浏览

c# - 如果 .NET 中的 MemoryStream 未关闭,是否会产生内存泄漏?

我有以下代码:

我分配的 MemoryStream 是否有可能在以后无法处理?

我有一个同行评审坚持要我手动关闭这个,我找不到信息来判断他是否有一个有效的观点。

0 投票
4 回答
543 浏览

windows - 是否有更好的客户端来查看系统监视器日志?

有谁知道用于显示 Windows系统监视器日志文件的更好的 GUI 客户端?(系统监视器有时称为性能监视器。)我试图通过比较内存使用情况来跟踪运行在 Windows XP 或 2K3 上的 C# 应用程序中的长期内存泄漏运行日志。

具体来说,我想要一个允许我看到以下内容的客户端(因为系统监视器无法或困难):

  • 指定查看数据的确切日期时间范围(或至少比小时更细的粒度)
  • 沿水平轴显示时间间隔
  • 显示时间范围的最大值、最小值、平均值
  • 在某处显示捕获源数据的时间间隔(1 秒、5 分钟等)

(如果不存在这样的东西,我愿意听取有关更好的长期性能/内存捕获工具的建议。)

编辑:我已经完成了谷歌搜索,除了关于如何创建系统监视器日志的教程外,没有找到任何东西。

0 投票
4 回答
6970 浏览

php - PHP:析构函数与 register_shutdown_function

我有一个 PHP 类,可以动态创建一个 PNG 图像并将其发送到浏览器。PHP手册说我需要确保最后调用imagedestroy函数来释放内存。现在,如果我不使用类,我会有一些这样的代码:

但是,我相信适合我班级的地方是在班级的析构函数中调用imagedestroy

我没有弄清楚析构函数是否以与关闭函数相同的方式被调用?例如,如果用户在浏览器中按下 STOP 按钮时执行停止。

注意:无论您在答案中写什么,请指向一些支持它的文章或手册页(URL)。