{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T18:27:14Z","timestamp":1775068034974,"version":"3.50.1"},"reference-count":15,"publisher":"Wiley","issue":"6","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4534,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1994,6]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Dynamic storage allocation is an important part of a large class of computer programs written in C and C + +. High\u2010performance algorithms for dynamic storage allocation have been, and will continue to be, of considerable interest. This paper presents detailed measurements of the cost of dynamic storage allocation in 11 diverse C and C + + programs using five very different dynamic storage allocation implementations, including a conservative garbage collection algorithm. Four of the allocator implementations measured are publicly available on the Internet. A number of the programs used in these measurements are also available on the Internet to facilitate further research in dynamic storage allocation. Finally, the data presented in this paper is an abbreviated version of more extensive statistics that are also publicly available on the Internet.<\/jats:p>","DOI":"10.1002\/spe.4380240602","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T07:06:56Z","timestamp":1163833616000},"page":"527-542","source":"Crossref","is-referenced-by-count":63,"title":["Memory allocation costs in large C and C++ programs"],"prefix":"10.1002","volume":"24","author":[{"given":"David","family":"Detlefs","sequence":"first","affiliation":[]},{"given":"Al","family":"Dosser","sequence":"additional","affiliation":[]},{"given":"Benjamin","family":"Zorn","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","first-page":"435","volume-title":"Fundamental Algorithms, volume 1 of The Art of Computer Programming","author":"Knuth Donald E.","year":"1973"},{"key":"e_1_2_1_3_2","unstructured":"David G.KornandKiem\u2010PhongVo \u2018In search of a better malloc\u2019.Proceedings of the Summer 1985 USENIX Conference 1985 pp.489\u2013506."},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/174619.174624"},{"key":"e_1_2_1_5_2","doi-asserted-by":"crossref","unstructured":"ThomasBallandJames R.Larus \u2018Optimally profiling and tracing programs\u2019 Conference Record of the Nineteenth ACM Symposium on Principles of Programming Languages January1992 pp.59\u201370.","DOI":"10.1145\/143165.143180"},{"key":"e_1_2_1_6_2","unstructured":"Digital Equipment Corporation Unix Manual Page for pixie ULTRIX V4.2 (rev 96) edition. September1991."},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380230704"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380180902"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380230804"},{"key":"e_1_2_1_10_2","doi-asserted-by":"crossref","unstructured":"DirkGrunwald BenjaminZornandRobertHenderson Improving the cache locality of memory allocation SIGPLAN'93 Conference on Programming Language Design and Implementation Albuquerque June1993 pp.177\u2013186.","DOI":"10.1145\/155090.155107"},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"Hans\u2010JuergenBoehm AlanDemersandScottShenker \u2018Mostly parallel garbage collection\u2019 Proceedings of the SIGPLAN'92 Conference on Programming Language Design and Implementation Toronto Canada June1991 pp.157\u2013164.","DOI":"10.1145\/113445.113459"},{"key":"e_1_2_1_12_2","doi-asserted-by":"crossref","unstructured":"Han\u2010JuergenBoehm \u2018Space efficient conservative garbage collection\u2019 SIGPLAN'93 Conference on Programming Language Design and Implementation Albuquerque June1993 pp.197\u2013206.","DOI":"10.1145\/155090.155109"},{"key":"e_1_2_1_13_2","volume-title":"Data Structures Techniques","author":"Standish Thomas","year":"1980"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/51607.51619"},{"key":"e_1_2_1_15_2","unstructured":"James R.LarusandThomasBall \u2018Rewriting executable files to measure program behavior\u2019 Technical Report 1083 Computer Sciences Department University of Wisconsin\u2010Madison Madison WI March1992."},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380130803"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380240602","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380240602","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,12]],"date-time":"2025-01-12T00:07:45Z","timestamp":1736640465000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380240602"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1994,6]]},"references-count":15,"journal-issue":{"issue":"6","published-print":{"date-parts":[[1994,6]]}},"alternative-id":["10.1002\/spe.4380240602"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380240602","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1994,6]]}}}