您好 我试图在客户端站点找到内存泄漏问题。他们正在使用我们的应用程序,并且随着时间的推移,应用程序耗尽内存并抛出OutOfMemory异常。在内部复制问题并不容易,因为我们将不得不坐几个小时来复制他们的工作流程。所以我需要在他们的机器上放一个工具(可能是免费的),它应该能够告诉我应用程序和一些生成信息是如何使用内存的。所以任何人都知道一个可以实现这一目标的工具,或者任何人都可以指出我可以帮助我找到问题的方向,而无需在dev env中分析整个应用程序
答案 0 :(得分:0)
假设Java,您可以设置-XX:+HeapDumpOnOutOfMemoryError
标志,这将导致JVM在抛出内存异常时转储堆。然后,您可以获取转储并通过jhat运行它以查看内存的分配位置。 (还有一个基于Eclipse的堆转储分析工具。)我过去使用过这个工具并取得了巨大的成功。
答案 1 :(得分:0)
事实上,支持.NET 2.0到4.0的新CLR Profiler刚刚由Microsoft发布:
David Broman's CLR Profiling API Blog: CLRProfiler V4 Released
它是免费的。