Enviar pesquisa
Carregar
Preludeのprecompile
•
Transferir como PPTX, PDF
•
0 gostou
•
724 visualizações
Glass_saga
Seguir
セキュリティ&プログラミング2011のプログラミング言語クラスで取り組んだ課題の発表資料
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 9
Baixar agora
Recomendados
C++ Transactional Memory言語拡張の紹介
C++ Transactional Memory言語拡張の紹介
yohhoy
nakameguro_feature.cpp vol.8
nakameguro_feature.cpp vol.8
yohhoy
Rustを勉強してみた!
Rustを勉強してみた!
ssmylh
MMIO on VT-x
MMIO on VT-x
Takuya ASADA
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
Tetsuya Hasegawa
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
Kenji Kazumura
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
Appresso Engineering Team
Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73
Appresso Engineering Team
Recomendados
C++ Transactional Memory言語拡張の紹介
C++ Transactional Memory言語拡張の紹介
yohhoy
nakameguro_feature.cpp vol.8
nakameguro_feature.cpp vol.8
yohhoy
Rustを勉強してみた!
Rustを勉強してみた!
ssmylh
MMIO on VT-x
MMIO on VT-x
Takuya ASADA
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
Tetsuya Hasegawa
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
Kenji Kazumura
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
Appresso Engineering Team
Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73
Appresso Engineering Team
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
Koki Natsume
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
xv6から始めるSPIN入門
xv6から始めるSPIN入門
Ryousei Takano
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
How to read linux kernel
How to read linux kernel
Naoya Ito
YARV INTRODUCTION
YARV INTRODUCTION
5t111111
node-handlersocket
node-handlersocket
koichik
Lockfree Queue
Lockfree Queue
Kumazaki Hiroki
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
Effective Java 輪読会 項目74-75
Effective Java 輪読会 項目74-75
Appresso Engineering Team
Javaで最強のfizz buzz
Javaで最強のfizz buzz
yy yank
Javaクラスファイルの読み方
Javaクラスファイルの読み方
y torazuka
Aio
Aio
Masaaki HIROSE
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
furandon_pig
たのしいNode.js
たのしいNode.js
ishiki-takai
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
Appresso Engineering Team
Adaptive optimization of JIT compiler
Adaptive optimization of JIT compiler
nothingcosmos
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
Ryosuke MATSUMOTO
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
Mais conteúdo relacionado
Mais procurados
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
Koki Natsume
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
xv6から始めるSPIN入門
xv6から始めるSPIN入門
Ryousei Takano
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
How to read linux kernel
How to read linux kernel
Naoya Ito
YARV INTRODUCTION
YARV INTRODUCTION
5t111111
node-handlersocket
node-handlersocket
koichik
Lockfree Queue
Lockfree Queue
Kumazaki Hiroki
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
Effective Java 輪読会 項目74-75
Effective Java 輪読会 項目74-75
Appresso Engineering Team
Javaで最強のfizz buzz
Javaで最強のfizz buzz
yy yank
Javaクラスファイルの読み方
Javaクラスファイルの読み方
y torazuka
Aio
Aio
Masaaki HIROSE
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
furandon_pig
たのしいNode.js
たのしいNode.js
ishiki-takai
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
Appresso Engineering Team
Adaptive optimization of JIT compiler
Adaptive optimization of JIT compiler
nothingcosmos
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu
Mais procurados
(20)
C++ マルチスレッド 入門
C++ マルチスレッド 入門
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
JVMの中身を可視化してみた
JVMの中身を可視化してみた
xv6から始めるSPIN入門
xv6から始めるSPIN入門
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
How to read linux kernel
How to read linux kernel
YARV INTRODUCTION
YARV INTRODUCTION
node-handlersocket
node-handlersocket
Lockfree Queue
Lockfree Queue
Programming camp 2008, Codereading
Programming camp 2008, Codereading
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
Effective Java 輪読会 項目74-75
Effective Java 輪読会 項目74-75
Javaで最強のfizz buzz
Javaで最強のfizz buzz
Javaクラスファイルの読み方
Javaクラスファイルの読み方
Aio
Aio
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
たのしいNode.js
たのしいNode.js
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
Adaptive optimization of JIT compiler
Adaptive optimization of JIT compiler
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
Semelhante a Preludeのprecompile
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
Ryosuke MATSUMOTO
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
Racc でおてがる構文解析
Racc でおてがる構文解析
morphine57
Summary of Ruby
Summary of Ruby
Tamotsu Furuya
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
Jun Saito
Mruby jitプレゼン
Mruby jitプレゼン
miura1729
Talend Studioで独自関数を実装して呼び出す - グローバルルーチンとカスタムルーチンJar
Talend Studioで独自関数を実装して呼び出す - グローバルルーチンとカスタムルーチンJar
QlikPresalesJapan
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Nobuto Murata
Mod mrubyについて
Mod mrubyについて
Ryosuke MATSUMOTO
d-kami x86-2
d-kami x86-2
Daisuke Kamikawa
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
Service Fabric での高密度配置
Service Fabric での高密度配置
Takekazu Omi
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
inaz2
JRuby on Rails
JRuby on Rails
Yoichiro Tanaka
エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半
Tetsuya Morimoto
18166746-NeverBlock-RubyKaigi2009
18166746-NeverBlock-RubyKaigi2009
Muhammad Ali
Docker 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介
Docker 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介
Masahito Zembutsu
TruffleSqueakの紹介
TruffleSqueakの紹介
Masashi Umezawa
ロボット用Open Source Software
ロボット用Open Source Software
たけおか しょうぞう
ATN No.2 Scala事始め
ATN No.2 Scala事始め
AdvancedTechNight
Semelhante a Preludeのprecompile
(20)
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
スレッドダンプの読み方
スレッドダンプの読み方
Racc でおてがる構文解析
Racc でおてがる構文解析
Summary of Ruby
Summary of Ruby
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
Mruby jitプレゼン
Mruby jitプレゼン
Talend Studioで独自関数を実装して呼び出す - グローバルルーチンとカスタムルーチンJar
Talend Studioで独自関数を実装して呼び出す - グローバルルーチンとカスタムルーチンJar
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Mod mrubyについて
Mod mrubyについて
d-kami x86-2
d-kami x86-2
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
Service Fabric での高密度配置
Service Fabric での高密度配置
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
JRuby on Rails
JRuby on Rails
エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半
18166746-NeverBlock-RubyKaigi2009
18166746-NeverBlock-RubyKaigi2009
Docker 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介
Docker 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介
TruffleSqueakの紹介
TruffleSqueakの紹介
ロボット用Open Source Software
ロボット用Open Source Software
ATN No.2 Scala事始め
ATN No.2 Scala事始め
Último
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Último
(10)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Preludeのprecompile
1.
Preludeのprecompile 2011年 8月
13日 プログラミング言語クラス 松下 正樹
2.
rubyの処理の流れ YARVという仮想マシンが存在 コードを解析した後YARVが理解できる命令列にコンパイルし、実行する
(例) puts “Hello, world!” ↓ RubyVM::InstructionSequence.compile 0003 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のprecompile rubyのビルド時に、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命令列専用の形式で高速化の可能性
Baixar agora