问题标签 [dotmemory]

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

.net - 在不强制 GC 收集的情况下拍摄 .NET 快照

我有一个部署在生产环境中的应用程序,有时它会开始消耗大量 RAM。为了能够分析并弄清楚为什么内存在某一点上消耗如此之多,我想我会为此使用 dotMemory CLI 分析工具。

我将 dotMemory 附加到该进程,然后使用##dotMemory["get-snapshot", {pid:12345}].

但是,当应用程序(在本例中为 .NET 4.5 中的 Web API)从 1.7GB(标准)上升到 2.5GB 或更多时,一旦我执行get-snapshot,dotMemory 似乎会强制进行垃圾收集,最终将占用的内存清除回约 1.7GB。考虑到它通常不会在不重新启动的情况下关闭的事实,dotMemory 并不是很有帮助,因为我得到的快照是在垃圾收集之后,这意味着我无法弄清楚是什么占用了这么多 RAM。

有没有我可以使用的这个或其他工具的解决方法?