问题标签 [memory-profiling]

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 回答
7920 浏览

java - ConcurrentHashMap 内存开销

有人知道 ConcurrentHashMap 的内存开销是多少(与“经典”HashMap 相比)?

  • 在施工?
  • 在插入元素时?
0 投票
1 回答
88 浏览

debugging - 检测和可视化内存传输和访问的工具

我有一段 C 代码计算稀疏矩阵的 LU 分解的问题。在那里,我编写了一些具有各种优化的不同例程。根据矩阵中非零元素的结构,一些实现变得非常快,但对于下一个示例矩阵,它变得太慢了。现在我需要一个工具来分析应用程序并向我显示代码在哪里等待来自内存的新数据和/或如何使用缓存。我已经尝试过 valgrind(cachegrind/callgrind) 但是开销太大并且不同实现的运行时之间的比例完全改变了。

是否有任何其他开源工具(Linux、BSD)来分析内存流量和类似问题?他们不应该使用内核模块。

0 投票
1 回答
1180 浏览

python - Python 3 内存分析器或简单的替代方案

可能重复:
是否有任何适用于 Python3 的工作内存分析器

我有一些脚本,我想找出哪些对象正在耗尽内存。此外,它应该适用于 Python 3。我发现了一些为此建议的模块,但它们通常很旧,并且没有为 Python 3 编码。尝试安装所有这些模块进行尝试也很麻烦。

你知道哪个内存分析器可以给我以下统计数据,或者你知道一个手动的 Python hack,我可以编写临时程序来检查相当短的脚本(不是我写的,因此一团糟:()?

我想查看运行后的对象计数,以及该对象是在哪一行创建的。就这样 :)

有任何想法吗?

编辑:一个想法是通过一个类来包装所有对象实例,该类对类变量中的初始化进行计数。它只需要重写字典、列表等的所有实例。

0 投票
3 回答
324 浏览

c++ - 找出消耗内存的地方

我有这个相对较大的数字应用程序代码,可能会运行几天并最终吐出一些数字。整个东西是用 C++ 编写的,利用了一堆 3rd-party 库,并使用 GCC 4.6 编译。该代码始终使用共享指针。

不幸的是,随着时间的推移,代码的内存消耗会增加,直到所有(共享)内存都用完,然后崩溃。从算法上讲,代码不应该随着时间的推移积累内存,所以某处会出现错误。

我确实通过 valgrind 的泄漏检查器运行了一个小例子,它报告一切都应该没问题。我的想法是共享指针可能会在某个地方无意中创建,从而防止在过程中释放不需要的数据(但这只是一个猜测)。

在一天结束的时候,我已经没有想法如何调试这样的东西了。有任何想法吗?

0 投票
1 回答
219 浏览

.net - typeperf 报告的内容与其他所有工具(mem profiler、process explorer、full dump)之间的差异

尝试对同一个 .net 3.5 应用程序的 2 个版本进行前后比较,结果不一致,具体取决于我使用的工具。

typeperf - 我认为这是权威的 - 说:

  • v1:244MB / 260MB(私有字节/工作集)
  • v2:281MB / 296MB

Process Explorer在性能图中显示了这些数字:

  • v1:283MB(私有字节)
  • v2:262MB

所以 typeperf 说 v2 需要更多的内存,Process Explorer 则相反。

这些都是单独的测量和不同的运行,但数字是惊人地可靠地重现。

除了前面提到的 2 个工具之外,我还从 Process Explorer 获取了完整的内存转储,并且只查看了文件大小(还没有时间去 WinDbg 或以其他方式分析它们):

  • v1:484MB(完整转储文件大小)
  • v2:480MB

此外,当从.net Memory Profiler运行应用程序时,v2 中的本机内存、.net 内存以及总内存都低于 v1。

所以它似乎是对世界其他地方的 typeperf(WinDbg 分析仍然很出色)。

谁是对的,我怎么知道?

0 投票
0 回答
60 浏览

.net - 是否可以在 .NET 中以编程方式获取 GC 跟踪分配对象的总数?

是否可以在 .NET 中以编程方式获取 GC 跟踪分配对象的总数?

您可以通过附加内存分析器来做到这一点。但是我似乎在运行时找不到这个数字。可能吗?最好是每一代。

0 投票
2 回答
1479 浏览

c - 分析 C 应用程序中的最大内存使用情况 - linux

我正在为 linux 下的 php 开发 C 模块,我正在尝试找到一种方法来帮助我通过最大内存峰值(使用)来分析我的代码。

使用 valgrind 我可以在代码中获得总内存分配。但由于它与分配的内存一样,它来来去去;)。我需要得到的是在 C 应用程序运行期间出现的最高内存使用率,这样我就可以全面了解内存需求并为代码优化提供一些测量点。

有谁知道任何可以提供帮助的工具/技巧/良好做法?

0 投票
1 回答
8563 浏览

java - 如何运行独立的 Eclipse MAT?

我使用 jmap 生成了 hprof。

现在,在 Eclipse 中解析 *.hprof 时出现 OOM / 'Java Heap Space' 错误。我想我需要单独运行它。

我该如何运行它?任何参考?

0 投票
1 回答
594 浏览

memory-management - 如何隔离 .NET 中的内存泄漏

我知道以前有人问过这个问题,但是那里的很多信息似乎已经过时了。

是否可以将 .NET 应用程序中的内存泄漏隔离到对象类型或命名空间?有没有一个免费的、最新的工具可以做到这一点?

目前我正在使用perfmon来监视私有字节和堆中的内存使用情况,但我想隔离有问题的类或代码段。

0 投票
0 回答
57 浏览

memory-profiling - Windows Azure 的内存配置文件

如何在本地(模拟器)部署上为 Windows azure 应用程序(辅助角色)执行内存分配配置文件?