{"title":"原子垃圾收集","authors":"Thomas Lindgren","doi":"10.1145/1088361.1088369","DOIUrl":null,"url":null,"abstract":"Atoms are a central data type in Erlang, yet there is currently no method for memory management of atoms in the most popular implementations. For long-lived systems, this leads to obscure bugs or defensive programming.In this paper, we discuss the relevant issues for atom garbage collection and propose some principles. We then devise an incremental copying collector with some optimizations.While a full implementation of the collector still remains to be done, an examination of pause times and space overheads, based on existing systems and realistic data, indicates that the algorithm is practical.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"150 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2005-09-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Atom garbage collection\",\"authors\":\"Thomas Lindgren\",\"doi\":\"10.1145/1088361.1088369\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Atoms are a central data type in Erlang, yet there is currently no method for memory management of atoms in the most popular implementations. For long-lived systems, this leads to obscure bugs or defensive programming.In this paper, we discuss the relevant issues for atom garbage collection and propose some principles. We then devise an incremental copying collector with some optimizations.While a full implementation of the collector still remains to be done, an examination of pause times and space overheads, based on existing systems and realistic data, indicates that the algorithm is practical.\",\"PeriodicalId\":140676,\"journal\":{\"name\":\"Erlang Workshop\",\"volume\":\"150 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2005-09-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Erlang Workshop\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1088361.1088369\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Erlang Workshop","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1088361.1088369","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Atoms are a central data type in Erlang, yet there is currently no method for memory management of atoms in the most popular implementations. For long-lived systems, this leads to obscure bugs or defensive programming.In this paper, we discuss the relevant issues for atom garbage collection and propose some principles. We then devise an incremental copying collector with some optimizations.While a full implementation of the collector still remains to be done, an examination of pause times and space overheads, based on existing systems and realistic data, indicates that the algorithm is practical.