The Johnstone / Wilson paper "The memory fragmentation problem: solved?" [1] is the original source.
Modern malloc systems including Google's TCMalloc, Hoard [2], and Intel's Scalable Malloc (aka Mcrt Malloc [3]) all owe much to that paper and along with other memory managers all segregate objects by size. Many languages, most notable C/C++, use these fragmentation avoidance memory managers to build large system without the need for copy compaction. [1] Mark S. Johnstone and Paul R. Wilson. 1998. The memory fragmentation problem: solved?. In Proceedings of the 1st international symposium on Memory management (ISMM '98). ACM, New York, NY, USA, 26-36. DOI=http://dx.doi.org/10.1145/286860.286864 [2] Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R. Wilson. 2000. Hoard: a scalable memory allocator for multithreaded applications. SIGPLAN Not. 35, 11 (November 2000), 117-128. DOI=http://dx.doi.org/10.1145/356989.357000 [3] Richard L. Hudson, Bratin Saha, Ali-Reza Adl-Tabatabai, and Benjamin C. Hertzberg. 2006. McRT-Malloc: a scalable transactional memory allocator. In Proceedings of the 5th international symposium on Memory management (ISMM '06). ACM, New York, NY, USA, 74-83. DOI=http://dx.doi.org/10.1145/1133956.1133967 On Tuesday, May 16, 2017 at 12:48:38 PM UTC-4, Zellyn wrote: > > Thanks for the enlightening and interesting reply, Ian. > > One quick question: do you have a link or a short description of why > “modern memory allocation algorithms, like the tcmalloc-based approach used > by the Go runtime, have essentially no fragmentation issues”? > > I was curious, but a quick search for [tcmalloc fragmentation] yielded > mostly people struggling with fragmentation issues when using tcmalloc. > > Zellyn > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.