17 Nov '12, 4am

@syuu1228 threaded codeについてはYARVを題材にした日本語のわかりやすい解説があります。

)に詳しくまとめられています。この Anton Ertl 氏というのがインタプリタの高速化の凄い人で、いろんな論文を発表しています。彼は本稿でも紹介した「同じことをする命令を複数用意して分岐予測ミスを減らす」というテクニックを詳細に検証しています(Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreters )。また、この論文には分岐自体を無くす dynamic replication、dynamic superinstruction (Combining Stack Caching with Dynamic Superinstructions )手法も提案しています。要するに、命令実行部分をコピーすることですが。この手法は selective inlining としても知られています(Optimizing direct threaded code by selective inlining

Full article: http://jp.rubyist.net/magazine/?0008-YarvManiacs

Tweets