我在生产中有一个在调试中编译的 C# (.net 4.5) 服务。一天之内,它泄露了 900mb 的内存。实际上使用了10gb的内存。
所以我尝试用 perfview 做一个差异,但我找不到我的 900mb 泄漏。
我可以看到无法访问的内存增加了大约 1000mb。这是什么意思?
所以基本上,我认为没有真正的内存泄漏。正如我所料,也许 GC 不工作。
我该怎么做才能找到导致每天内存消耗增加 400mb-900mb 的原因?
我在生产中有一个在调试中编译的 C# (.net 4.5) 服务。一天之内,它泄露了 900mb 的内存。实际上使用了10gb的内存。
所以我尝试用 perfview 做一个差异,但我找不到我的 900mb 泄漏。
我可以看到无法访问的内存增加了大约 1000mb。这是什么意思?
所以基本上,我认为没有真正的内存泄漏。正如我所料,也许 GC 不工作。
我该怎么做才能找到导致每天内存消耗增加 400mb-900mb 的原因?
使用 perfview 查找内存泄漏
PerfView 是一种性能分析工具,可帮助隔离与 CPU 和内存相关的性能问题。
我该怎么做才能找到导致每天内存消耗增加 400mb-900mb 的原因?
安装一个好的内存分析器工具例如:ANTS Memory Profiler,它带有 14 天的试用期。
通过启动配置文件会话来运行应用程序并检查哪些实例在持续增长。
本演练涵盖了您需要做的所有事情。没有大的学习曲线。