.net - 大对象堆碎片 : CLR has any solution to it?

标签 .net garbage-collection large-object-heap

如果您的应用程序必须对大尺寸对象(> 85000 字节)进行大量分配/取消分配,则最终会导致内存碎片,并且您的应用程序将抛出内存不足异常。

这个问题有什么解决方案,还是CLR内存管理的限制?

最佳答案

不幸的是,我见过的所有信息都只建议您自己管理风险因素:重用大对象,在开始时分配它们,确保它们的大小是彼此的倍数,使用替代数据结构(列表、树)而不是数组。这只是给了我另一个想法,即创建一个非分段列表,而不是一个大数组,拆分成更小的数组。数组/列表似乎是最常见的 IME 罪魁祸首。

这是一篇关于它的 MSDN 杂志文章:
http://msdn.microsoft.com/en-us/magazine/cc534993.aspx ,但没有那么多用处。

关于.net - 大对象堆碎片 : CLR has any solution to it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250039/

相关文章:

java - 为什么字符串去重不是标准的

c# - 来自队列的大对象堆和字符串对象

c# - 使用字节数组时的堆碎片

c# - 是否可以使用 ResourceManager 在不使用 .resx 文件的情况下即时创建伪资源?

c# - Copy local = false file not found 异常问题

c# - 在运行时动态创建从基类继承的对象

c# - 如何在 C# 中的自定义跟踪监听器上调用 dispose

c# - 索引器和存储位置

Java 垃圾收集器和字符串操作

asp.net - ASP.NET 中的大数组支持