这句话是什么意思?

在阅读提高.NET应用程序性能和可伸缩性时,我在“改进托管代码性能/垃圾收集器指南”中遇到了这个问题:
Avoid preallocating and chunking memory.
但本书从未解释过为什么预分配是坏的或者Chunking在GC优化方面的真正含义。 有人可以对这个问题有更多的了解,并向我解释为什么这两个是坏的,它们在使用GC的.net方面有什么意义? http://www.microsoft.com/downloads/en/details.aspx?FamilyId=8A2E454D-F30E-4E72-B531-75384A0F1C47&displaylang=en     
已邀请:
预分配内存是一种不能很好地扩展的技术。分块可以推动大对象堆中的分配。要么会让你不必要地使用内存。信任垃圾收集器,在需要时进行分配。     
关于问题是什么,它确实有一些说法。页面198:   C ++程序员经常分配一大块内存(使用malloc)然后   一次使用块,以保存对malloc的多个调用。这是不可取的   托管代码有以下几个原因:         托管内存的分配是一个快速操作,垃圾收集器具有   针对极快的分配进行了优化。预分配的主要原因   非托管代码中的内存是加快分配过程。这不是   托管代码的问题。   如果预分配内存,则会导致分配超出所需的分配;这个可以   触发不必要的垃圾收集   垃圾收集器无法回收您手动回收的内存。   预分配的内存时间和最终发布后的回收成本更高。        

要回复问题请先登录注册