在阅读改进.NET应用程序性能和可伸缩性时,我在“提高托管代码性能/垃圾收集器指南:
Avoid preallocating and chunking memory.
但是这本书从来没有解释为什么预分配是不好的,或者从GC优化的角度来看,分块真正意味着什么。
有没有人能解释一下这个问题,解释一下为什么这两个不好,以及在.net中使用GC的真正意义是什么?
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=8A2E454D-F30E-4E72-B531-75384A0F1C47&displaylang=en
发布于 2011-04-01 04:06:58
预分配内存是一种伸缩性不好的技术。分块可能会在大对象堆中推送分配。这两种方法都会让你不必要地使用内存。相信垃圾收集器,在你需要的时候进行分配。
发布于 2011-04-01 04:11:02
关于问题是什么,它确实有一些东西要说。第198页:
C++程序员通常分配一个很大的内存块(使用malloc),然后一次使用多个内存块,以节省对malloc的多次调用。对于托管代码,这是不可取的,原因如下:
托管内存的
https://stackoverflow.com/questions/5505680
复制相似问题