G. Agosta, S. Crespi-Reghizzi, P. Palumbo, M. Sykora
{"title":"通过快速代码分析和字节码跟踪选择性编译","authors":"G. Agosta, S. Crespi-Reghizzi, P. Palumbo, M. Sykora","doi":"10.1145/1141277.1141488","DOIUrl":null,"url":null,"abstract":"Modern Java Virtual Machines (JVM) commonly adopt Just-In-Time (JIT) compilation to speed up the execution of Java Bytecode. However, the effort of compiling a region of code is only worth if the code is frequently executed. Therefore, Selective Compilation is employed so that the JIT compiler is only invoked on those regions of code where most of the computation is performed (hot spots). The core task in Selective Compilation is to correctly identify the hot spots in a program. In our SeleKaffe prototype virtual machine, we introduce two heuristics aimed at detecting hot spots both statically, via bytecode analysis, and dynamically, via profiling information. Experimental results on a representative set of benchmarks show that our method selection strategy is more accurate than known strategies, and not significantly slower.","PeriodicalId":269830,"journal":{"name":"Proceedings of the 2006 ACM symposium on Applied computing","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2006-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":"{\"title\":\"Selective compilation via fast code analysis and bytecode tracing\",\"authors\":\"G. Agosta, S. Crespi-Reghizzi, P. Palumbo, M. Sykora\",\"doi\":\"10.1145/1141277.1141488\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Modern Java Virtual Machines (JVM) commonly adopt Just-In-Time (JIT) compilation to speed up the execution of Java Bytecode. However, the effort of compiling a region of code is only worth if the code is frequently executed. Therefore, Selective Compilation is employed so that the JIT compiler is only invoked on those regions of code where most of the computation is performed (hot spots). The core task in Selective Compilation is to correctly identify the hot spots in a program. In our SeleKaffe prototype virtual machine, we introduce two heuristics aimed at detecting hot spots both statically, via bytecode analysis, and dynamically, via profiling information. Experimental results on a representative set of benchmarks show that our method selection strategy is more accurate than known strategies, and not significantly slower.\",\"PeriodicalId\":269830,\"journal\":{\"name\":\"Proceedings of the 2006 ACM symposium on Applied computing\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2006-04-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"7\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 2006 ACM symposium on Applied computing\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1141277.1141488\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2006 ACM symposium on Applied computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1141277.1141488","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Selective compilation via fast code analysis and bytecode tracing
Modern Java Virtual Machines (JVM) commonly adopt Just-In-Time (JIT) compilation to speed up the execution of Java Bytecode. However, the effort of compiling a region of code is only worth if the code is frequently executed. Therefore, Selective Compilation is employed so that the JIT compiler is only invoked on those regions of code where most of the computation is performed (hot spots). The core task in Selective Compilation is to correctly identify the hot spots in a program. In our SeleKaffe prototype virtual machine, we introduce two heuristics aimed at detecting hot spots both statically, via bytecode analysis, and dynamically, via profiling information. Experimental results on a representative set of benchmarks show that our method selection strategy is more accurate than known strategies, and not significantly slower.