Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mrubyのJITのプレゼン

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 mrubyのJITのプレゼン

TCFMミートアップでは話そうと思って作ったのだが、都合で参加できなくてお蔵入りになったスライド

Avatar for Miura Hideki

Miura Hideki

April 29, 2023
Tweet

Other Decks in Programming

Transcript

  1. mrubyのJITはtracing JITを採用しています。ざっくり言う と、命令実行のたびに対応するVMと同等の機械語命令を 命令領域に書きこんでいいき、次にその命令を実行する場 合はその機械語命令を実行するというものです。 OP_LOADSELF R1 OP_LOADI R2, 1

    OP_SEND R1, 1 PC move EAX, 1 move 8(EC X), EAX 命令を実行しつつ、同等の機械語命令を生成する /* A sBx R(A ) := sBx */ SET_INT_VALUE(regs[GETARG_A(i)], GET ARG_sBx(i)); NEXT; 生成コードバッファ mrubyのJITの概要 mrubyのJITはmrubyにJITコンパイラをいれたものです。 機械語生成にXbyakを使用させてもらっています
  2. >>> Test test <<< mrbtest - Embeddable Ruby Test ........................................................................................................................................................................

    ........................................................................................................................................................................ ........................................................................................................................................................................ ........................................................................................................................................................................ ...................................................?................................................................................................................... .........................................F................... Skip: Module#prepend super in alias super does not currently work in aliased methods Fail: multiple assignment (nosplat array rhs) (mrbgems: mruby-test) - Assertion[1] Failed: Expected "Expected to be equal" to be nil Expected: nil Actual: 0 Total: 899 OK: 898 KO: 1 Crash: 0 mrubyのJITはmrubyの5~10倍速い(こと がある)とかあるけど、一番の売りはこれ RubyのJITコンパイラなのに脅威の互換性