Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

JRuby on Java SE 7

「Java SE 7 リリース記念特別イベント懇親会 LT」向け。

Hiroshi Nakamura

on 18 August 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of JRuby on Java SE 7





Ruby on Rails(+github)の存在 JRuby on Java SE 7 http://bit.ly/invokedynamic

Hiroshi Nakamura
Sarion Systems Research
nahi@ruby-lang.org For more details: http://bit.ly/JRubyHackingGuide Ruby AST JavaVM Native machine code JRubyの動作 Interpreter Scanner & Parser JRuby JIT Compiler
(dynamic bytecode generation) JRuby AOT Compiler
(full bytecode generation) Java Bytecode (来週)7月15日(金) 19:00~22:00
オラクル青山センター13Fセミナー室 Thomas Enebo (JRuby co-lead)

Hiro Asari (Engine Yard)

Koichiro Ohba (CTC) http://jrubykaigi.org/ JavaVM JIT Compiler 日本語 Rubyとは 従来のメソッド呼び出し invokedynamic版(開発中) JRuby + invokedynamic
実装の現状 概ね動く
同一バイナリでJave SE 7を自動検出
他にも活用できるところありそう? ~JRubyでのinvokedynamic利用~ メソッドは型とsignatureがわかってないと呼べない
コードサイズ全9.5Mのうち1.8Mを占める(20%) Invoker#call(self)
Invoker#call(self, arg)
Invoker#call(self, arg, arg)
Invoker#call(self, callback)
Invoker#call(self, arg, callback)
etc. invokedynamic メソッド再定義によるinvalidate メソッド再定義によるinvalidate Java SE 7 dynamic language support
(java.lang.invoke.*) 再帰計算(37) ループ計算(300000) 各種ループ 竹内関数 Stream XMLパーザ DOM XMLパーザ ※GCの影響あり 呼び出しメソッドの検索
キャッシュミス判定 呼び出しメソッドの検索
キャッシュミス判定 これが呼びたい! ←invokedynamic呼び出し ↑登録したbootstrap ←従来は自前のCallSiteを
 invokevirtual呼び出し Java6 Java7 Java7+invokedynamic
Full transcript