Information and Media Technologies
Online ISSN : 1881-0896
ISSN-L : 1881-0896
Computing
How to Select Superinstructions for Ruby
Salikh ZakirovShigeru ChibaEtsuya Shibayama
著者情報
ジャーナル フリー

2010 年 5 巻 2 号 p. 519-526

詳細
抄録
Superinstruction is well-known techniques of improving performance of interpreters. Superinstructions eliminate jumps between VM operations (interpreter dispatch) and enable more optimizations in merged code. In past, processors with simple BTB-based branch predictors had high misprediction rate when executing interpreted code, resulting in high overhead of interpreter dispatch, so superinstructions were used to reduce it. However, this assumption is incorrect for Ruby on current hardware. Accordingly, using superinstructions for eliminating jump instructions only marginally improves performance. In this paper, we consider applying superinstructions differently to improve performance of floating point computation. We note that high percentage of objects allocated during numeric computation are boxed floating point values, meanwhile garbage collection takes significant part of the execution time. Using superinstructions composed from pairs of arithmetic operations we were able to reduce allocation of boxed floats by up to 36%, and obtain improvement in performance of up to 22%.
著者関連情報
© 2010 by Information Processing Society of Japan
前の記事 次の記事
feedback
Top