小编Jac*_*otb的帖子

C#.NET垃圾收集无法正常运行?

我正在Visual Studio 2010中开发一个相对较大的解决方案.它有各种项目,其中一个是XNA Game-project,另一个是ASP.NET MVC 2项目.

对于这两个项目,我面临同样的问题:在调试模式下启动它们后,内存使用率不断上升.它们分别以40和100MB的内存使用量开始,但两者都相对较快地升至1.5GB(分别为10分钟和30分钟).之后它有时会回落到接近初始使用状态,有时它会抛出OutOfMemoryExceptions.

当然,这将表明严重的内存泄漏,所以这是我最初试图发现问题的地方.在不成功地搜索泄漏之后,我试着GC.Collect()定期打电话(大约每10秒一次).在引入这个"黑客"后,内存使用量分别保持在45和120MB 24小时(直到我停止测试).

.NET的垃圾收集应该是"非常好的",但我不禁怀疑它只是不起作用.我使用CLR Profiler试图解决问题,它表明XNA项目似乎已经保存了很多我确实使用的字节数组,但是引用应该已经被删除,因此被垃圾收集集电极.

再次,当我GC.Collect()经常打电话时,内存使用问题似乎已经消失.有谁知道什么可能导致这种高内存使用?它可能与在调试模式下运行有关吗?

.net c# garbage-collection

8
推荐指数
2
解决办法
9207
查看次数

标签 统计

.net ×1

c# ×1

garbage-collection ×1