-1

我们的应用程序现在表现不佳。当我们查看性能时,我们发现垃圾收集时间是执行时间的 95%。但与此同时,我们的总体内存使用率非常低 - 正如 TaskManager 所示,我们有大量可用内存。这是为什么?我认为垃圾收集器只有在内存压力很高时才会忙碌。

4

4 回答 4

1

来自维基:垃圾收集

Garbage Collection (GC)是一种自动内存管理的形式。垃圾收集器,或只是收集器,尝试回收垃圾,或由程序不再使用的对象占用的内存。

如果您正在分配内存并且未能释放它,那么垃圾收集器就会出现。检查您的代码并确保您分配的内存在超出范围时被释放。

于 2013-07-19T17:32:36.580 回答
0

任务管理器内存读数可能与分配给特定虚拟机的实际内存完全无关。

于 2013-07-19T17:11:01.067 回答
0

可能您分配了很多并且可以释放很多对象。使用Allocation Tracker 跟踪内存分配并尝试尽可能少地分配。您甚至可以在应用程序开始时分配所有内容,然后再不分配任何内容。这样你就不会“引诱” GC 被调用。

于 2013-07-19T17:12:22.383 回答
0

不要查看任务管理器。尝试使用任何与 .net 相关的内存查看器,这样您就可以了解垃圾收集器何时何地起作用。我认为这可能是因为您可能有内存泄漏,尝试使用一些工具来获取更好的主意,关于您的应用程序是否存在泄漏。

于 2013-07-19T20:32:13.987 回答