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

linux - 当 Linux 内存不足时,如何获得有关进程的更多信息?

我最近遇到了 oom-killer 在一段时间后开始杀死进程的问题。我可以看到内存被消耗了,但是当我到达服务器时,已经不清楚是什么消耗了它。是否有一个很好的非显而易见的地方可以获取有关 oom-killer 的更多信息?例如,激活时有关进程的详细信息、有关已终止进程的详细信息以及选择的原因?

我正在寻找一个特定的地方来查找此信息,收集它的特定工具或一些配置以改进 oom-killer 报告。我不是在寻找有关 oom-killer 的通用信息。/var/messages 默认情况下将仅包含有关空闲/已分配内存的详细报告,但不包含分配给它的特定进程。

0 投票
5 回答
12960 浏览

database - 如何避免使用 LINQ-To-SQL 的内存泄漏?

我在使用 LINQ-To-SQL 时遇到了一些关于内存使用的问题。我在 Windows 服务中使用它来进行一些处理,并且我正在循环访问从上下文中拉回的大量数据。是的 - 我知道我可以使用存储过程来做到这一点,但有一些原因表明这不是一个理想的解决方案。

无论如何,我看到的基本上是即使在我调用之后内存也没有被释放context.SubmitChanges()。所以我最终不得不做各种奇怪的事情,比如一次只拉回 100 条记录,或者创建多个上下文并让它们都执行单独的任务。如果我保持相同DataContext并稍后将其用于其他调用,它只会占用越来越多的内存。即使我调用查询返回给我Clear()的 " " 数组,将其设置为 null,然后调用- 它仍然不会释放内存。var tableRowsSYstem.GC.Collect()

现在我已经阅读了一些关于如何快速使用DataContexts并快速处理它们的内容,但似乎它们应该是一种强制上下文转储其所有数据(或特定表的所有跟踪数据)的方法一定要保证内存是空闲的。

任何人都知道哪些步骤可以保证内存被释放?

0 投票
15 回答
112800 浏览

c# - 哪些策略和工具可用于查找 .NET 中的内存泄漏?

我写了 10 年的 C++。我遇到了内存问题,但可以通过合理的努力来解决它们。

在过去的几年里,我一直在编写 C#。我发现我仍然有很多记忆问题。由于不确定性,它们很难诊断和修复,而且因为 C# 的理念是,当你非常肯定地这样做时,你不应该担心这些事情。

我发现的一个特殊问题是我必须明确地处理和清理代码中的所有内容。如果我不这样做,那么内存分析器就没有真正的帮助,因为有太多的谷壳漂浮在你身上,你无法在他们试图向你展示的所有数据中找到泄漏。我想知道我是否有错误的想法,或者我所拥有的工具是否不是最好的。

什么样的策略和工具可用于解决 .NET 中的内存泄漏?

0 投票
7 回答
27441 浏览

python - 如何在生产系统的 Python 进程中找到正在使用内存的内容?

我的生产系统偶尔会出现内存泄漏,我无法在开发环境中重现。我在开发环境中使用了Python 内存分析器(特别是 Heapy)并取得了一些成功,但它无法帮助我处理无法重现的事情,而且我不愿意使用 Heapy 来检测我们的生产系统,因为它需要一段时间才能完成它的工作,并且它的线程远程接口在我们的服务器中无法正常工作。

我想我想要的是一种方法来转储生产 Python 进程(或至少 gc.get_objects)的快照,然后离线分析它以查看它在哪里使用内存。 如何获得这样的 python 进程的核心转储? 一旦我有了一个,我该如何用它做一些有用的事情?

0 投票
7 回答
113172 浏览

linux - How do I find which process is leaking memory?

I have a system (Ubuntu) with many processes and one (or more) have a memory leak. Is there a good way to find the process that has the leak? Some of the process are JVMs, some are not. Some are home grown some are open source.

0 投票
11 回答
80145 浏览

iphone - 内存泄漏检测工具

Apple 的 Xcode 开发环境是否提供任何用于内存泄漏检测的工具?

我对适用于 iPhone SDK 的工具特别感兴趣。目前我最喜欢的业余编程项目平台

所述工具的文档/教程将非常有帮助。

0 投票
1 回答
873 浏览

sharepoint - 为什么我的“开箱即用”SharePoint Navigation 看起来像是在泄漏内存

我的网站有一个很深的导航结构,而且经常看起来开箱即用的导航正在泄漏内存,尤其是 SPWeb 对象。

日志消息看起来像

当前在线程 5 上未释放的 SPRequest 对象 (14) 可能过多。确保正确处置此对象或其父对象(例如 SPWeb 或 SPSite)。

0 投票
7 回答
12844 浏览

c++ - 下面的代码会导致c ++中的内存泄漏吗

在上面的代码中,构造函数抛出。哪些对象会被泄露,如何避免内存泄露?

在上面的代码中怎么样?构造函数抛出后如何避免内存泄漏?

0 投票
6 回答
4681 浏览

c# - 追踪仅在一个客户的盒子上可见的内存泄漏 (C#) 的最佳方法

追踪仅在一个客户的测试/发布盒上发现的内存泄漏的最佳方法是什么?

0 投票
4 回答
6671 浏览

c - GLIBC:调试内存泄漏:如何解释 mtrace() 的输出

我正在尝试调试内存泄漏问题。我正在使用mtrace()来获取 malloc/free/realloc 跟踪。我已经运行了我的 prog,现在有一个巨大的日志文件。到现在为止还挺好。但我在解释文件时遇到问题。看看这些行:

奇怪的是,一个调用(相同的返回地址)负责 4 个分配。

更陌生:

在这两行之间,块 0x2aaab43a1700 永远不会被释放。

有谁知道如何解释这个?一次调用如何导致 4 次分配?malloc 怎么会返回一个之前已经分配好的地址呢?

编辑 2008/09/30:分析 GLIBC (mtrace.pl) 提供的 mtrace() 输出的脚本在这里没有任何帮助。它只会说:Alloc 0x2aaab43a1700 重复。但这怎么会发生呢?