{"title":"由Java动态编译器消除冗余装箱","authors":"Y. Chiba","doi":"10.1145/1294325.1294355","DOIUrl":null,"url":null,"abstract":"Auto-boxing improves code readability by eliminating the need for explicit boxing code, but it does not improve performance, because it does not eliminate boxing code but inserts the code implicitly. Current auto-boxing implementations try to improve performance by caching some of the boxed values in order to avoid wrapper class instance allocation on each boxing operation. Such an implementation, however, sometimes suffers greater performance degradation because it prevents traditional optimizations, such as redundant instance allocation elimination. This paper presents a new optimizing technique that eliminates the boxing code inserted by auto-boxing if the code is found redundant. Estimation using the SPECjbb2005 benchmark showed that this optimization improved performance by 3.6%.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"23 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":"{\"title\":\"Redundant boxing elimination by a dynamic compiler for Java\",\"authors\":\"Y. Chiba\",\"doi\":\"10.1145/1294325.1294355\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Auto-boxing improves code readability by eliminating the need for explicit boxing code, but it does not improve performance, because it does not eliminate boxing code but inserts the code implicitly. Current auto-boxing implementations try to improve performance by caching some of the boxed values in order to avoid wrapper class instance allocation on each boxing operation. Such an implementation, however, sometimes suffers greater performance degradation because it prevents traditional optimizations, such as redundant instance allocation elimination. This paper presents a new optimizing technique that eliminates the boxing code inserted by auto-boxing if the code is found redundant. Estimation using the SPECjbb2005 benchmark showed that this optimization improved performance by 3.6%.\",\"PeriodicalId\":169989,\"journal\":{\"name\":\"Principles and Practice of Programming in Java\",\"volume\":\"23 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2007-09-05\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"9\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Principles and Practice of Programming in Java\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1294325.1294355\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Principles and Practice of Programming in Java","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1294325.1294355","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Redundant boxing elimination by a dynamic compiler for Java
Auto-boxing improves code readability by eliminating the need for explicit boxing code, but it does not improve performance, because it does not eliminate boxing code but inserts the code implicitly. Current auto-boxing implementations try to improve performance by caching some of the boxed values in order to avoid wrapper class instance allocation on each boxing operation. Such an implementation, however, sometimes suffers greater performance degradation because it prevents traditional optimizations, such as redundant instance allocation elimination. This paper presents a new optimizing technique that eliminates the boxing code inserted by auto-boxing if the code is found redundant. Estimation using the SPECjbb2005 benchmark showed that this optimization improved performance by 3.6%.