Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Glass_saga
PPTX, PDF
729 views
Preludeのprecompile
セキュリティ&プログラミング2011のプログラミング言語クラスで取り組んだ課題の発表資料
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 9
2
/ 9
3
/ 9
4
/ 9
5
/ 9
6
/ 9
7
/ 9
8
/ 9
9
/ 9
More Related Content
PDF
C++ Transactional Memory言語拡張の紹介
by
yohhoy
PDF
nakameguro_feature.cpp vol.8
by
yohhoy
PDF
Rustを勉強してみた!
by
ssmylh
PDF
MMIO on VT-x
by
Takuya ASADA
PDF
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
by
Tetsuya Hasegawa
PPT
Javaでトランザクショナルメモリを使う
by
Kenji Kazumura
PPTX
Effective Java 輪読会 項目66-68
by
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目71-73
by
Appresso Engineering Team
C++ Transactional Memory言語拡張の紹介
by
yohhoy
nakameguro_feature.cpp vol.8
by
yohhoy
Rustを勉強してみた!
by
ssmylh
MMIO on VT-x
by
Takuya ASADA
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
by
Tetsuya Hasegawa
Javaでトランザクショナルメモリを使う
by
Kenji Kazumura
Effective Java 輪読会 項目66-68
by
Appresso Engineering Team
Effective Java 輪読会 項目71-73
by
Appresso Engineering Team
What's hot
PDF
C++ マルチスレッド 入門
by
京大 マイコンクラブ
PPTX
Goで学ぶDApp(aizu.go#2)
by
Koki Natsume
PDF
JVMの中身を可視化してみた
by
Kengo Toda
PDF
xv6から始めるSPIN入門
by
Ryousei Takano
PDF
DTraceによるMySQL解析ことはじめ
by
Mikiya Okuno
PPT
How to read linux kernel
by
Naoya Ito
PDF
YARV INTRODUCTION
by
5t111111
PDF
node-handlersocket
by
koichik
PPT
Lockfree Queue
by
Kumazaki Hiroki
PDF
Programming camp 2008, Codereading
by
Hiro Yoshioka
PDF
0章 Linuxカーネルを読む前に最低限知っておくべきこと
by
mao999
PPTX
Effective Java 輪読会 項目74-75
by
Appresso Engineering Team
PDF
Javaで最強のfizz buzz
by
yy yank
PDF
Javaクラスファイルの読み方
by
y torazuka
PPT
Aio
by
Masaaki HIROSE
PPTX
パケットジェネレータipgenから見るnetmap
by
furandon_pig
PPTX
たのしいNode.js
by
ishiki-takai
PPTX
Effective Java 輪読会 項目69-70
by
Appresso Engineering Team
PDF
Adaptive optimization of JIT compiler
by
nothingcosmos
PPTX
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
by
shigeki_ohtsu
C++ マルチスレッド 入門
by
京大 マイコンクラブ
Goで学ぶDApp(aizu.go#2)
by
Koki Natsume
JVMの中身を可視化してみた
by
Kengo Toda
xv6から始めるSPIN入門
by
Ryousei Takano
DTraceによるMySQL解析ことはじめ
by
Mikiya Okuno
How to read linux kernel
by
Naoya Ito
YARV INTRODUCTION
by
5t111111
node-handlersocket
by
koichik
Lockfree Queue
by
Kumazaki Hiroki
Programming camp 2008, Codereading
by
Hiro Yoshioka
0章 Linuxカーネルを読む前に最低限知っておくべきこと
by
mao999
Effective Java 輪読会 項目74-75
by
Appresso Engineering Team
Javaで最強のfizz buzz
by
yy yank
Javaクラスファイルの読み方
by
y torazuka
Aio
by
Masaaki HIROSE
パケットジェネレータipgenから見るnetmap
by
furandon_pig
たのしいNode.js
by
ishiki-takai
Effective Java 輪読会 項目69-70
by
Appresso Engineering Team
Adaptive optimization of JIT compiler
by
nothingcosmos
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
by
shigeki_ohtsu
Preludeのprecompile
1.
Preludeのprecompile2011年 8月 13日プログラミング言語クラス
松下 正樹
2.
rubyの処理の流れYARVという仮想マシンが存在コードを解析した後YARVが理解できる命令列にコンパイルし、実行する(例)puts “Hello, world!”
↓ RubyVM::InstructionSequence.compile0003 putstring "Hello, world!"0005 send :puts, 1, nil, 8, <ic:0>
3.
Preludeとは(1)インタプリタの起動時に毎回実行されるRubyスクリプトコードの内容MUTEX_FOR_THREAD_EXCLUSIVEの定義 (排他制御などに利用する為のVMグローバルなMutex)rubygem.rbをrequire(Rubyの標準パッケージ管理システム)エンコーディングの定義とそのエイリアス、トランスコーダ
4.
課題実行ファイルにPreludeのRubyコードが埋め込まれていて、rubyは起動時にこのコードを解析、コンパイル、実行する起動時にコードの解析と、VARV命令列へのコンパイルが毎回必要Preludeの内容は変化しないので、前もってYARV命令列にコンパイルしておけば高速化が期待できる
5.
Preludeのprecompilerubyのビルド時に、PreludeのRubyコードの内容をVARY命令列にコンパイルしておくrubyの起動時には、コンパイルしておいた命令列を読みだしてそのまま実行する
6.
結果ビルド時にPreludeをprecompileしてファイルに書き出し、rubyの実行時にはコンパイル済みの命令列を直接実行できるようになったprelude.cに埋め込まれていたCの文字列
7.
PreludeのRubyコードから生成したYARV命令列
8.
precompileなしを1とした時のpreludeの実行にかかる時間
9.
考察precompileしたのに遅い->解析とコンパイルにかかる時間よりも、文字列からのYARV命令列の復元にかかる時間の方が長いMarshal.loadがボトルネック?->YARV命令列専用の形式で高速化の可能性
Download