{"title":"Understanding and comparing the performance of optimized JVMs","authors":"D. Nicolaescu, A. Veidenbaum","doi":"10.1109/IWIA.2005.44","DOIUrl":null,"url":null,"abstract":"Java virtual machines have different performance characteristics depending on their interpretation and just in time compilation strategies. These characteristics are even more complex when running on a modern out-of-order superscalar processor. This paper analyzes the behavior of the SPECjvm98 benchmarks on IBM's JikesRVM Java virtual machine executing on the IBM Power4 processor. Execution time parameters such as the number of instructions and cycles, the behavior of instruction and data caches, and the branching characteristics obtained from hardware performance counters are used to explain performance differences between interpreted, JIT compiled and dynamically optimized JVMs. Our goal is to understand benchmark and processor behavior with different JIT optimization options and strategies and to use this knowledge in design of future JVMs. The results show that the reduction in the number of executed instructions due to compiler optimizations is the main reason for improved performance. An increase in instruction level parallelism in compiled code provides further improvement. The increased ILP is in large part due to elimination of dependences in the optimized code.","PeriodicalId":103456,"journal":{"name":"Innovative Architecture for Future Generation High-Performance Processors and Systems (IWIA'05)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2005-01-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Innovative Architecture for Future Generation High-Performance Processors and Systems (IWIA'05)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IWIA.2005.44","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3
Abstract
Java virtual machines have different performance characteristics depending on their interpretation and just in time compilation strategies. These characteristics are even more complex when running on a modern out-of-order superscalar processor. This paper analyzes the behavior of the SPECjvm98 benchmarks on IBM's JikesRVM Java virtual machine executing on the IBM Power4 processor. Execution time parameters such as the number of instructions and cycles, the behavior of instruction and data caches, and the branching characteristics obtained from hardware performance counters are used to explain performance differences between interpreted, JIT compiled and dynamically optimized JVMs. Our goal is to understand benchmark and processor behavior with different JIT optimization options and strategies and to use this knowledge in design of future JVMs. The results show that the reduction in the number of executed instructions due to compiler optimizations is the main reason for improved performance. An increase in instruction level parallelism in compiled code provides further improvement. The increased ILP is in large part due to elimination of dependences in the optimized code.