【发布时间】:2013-06-28 07:42:01
【问题描述】:
我们有一个用 C# 编写的程序,用作服务器。这是一项 Windows 服务。这个程序经常使用机器的所有内存,但我不知道是什么原因造成的。我能做什么?
我的程序已经作为官方服务器使用了,我不能随便重启它,所以我不能使用任何工具,因为工具需要重启我的程序并且不能附加到进程。而且我不知道可能有害的代码,因为我的程序有很多代码。
【问题讨论】:
-
您有应用程序的源代码吗?如果是这样,你明白它在做什么吗?
-
展示你的作品并告诉人们你尝试了什么。
-
听起来像是内存泄漏......它是否发生在应用程序的某个部分?您可以尝试根据您拥有的工具或运行任务管理器的非常基本的级别对其进行分析,并在某些操作期间观察内存使用情况,以查看是否可以看到内存泄漏出现的位置(即在服务的某个阶段)。
-
使用像 .Net Memory Profiler 这样的内存分析器。 memprofiler.com
-
向我们展示一些您认为可能导致此问题的代码。或者,如果您不知道是哪个部分导致了内存使用,那么就开始切块(注释掉大的部分),看看性能何时会提高
标签: c#