Suche senden
Hochladen
Preludeのprecompile
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
724 views
Glass_saga
Folgen
セキュリティ&プログラミング2011のプログラミング言語クラスで取り組んだ課題の発表資料
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 9
Jetzt herunterladen
Empfohlen
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
Empfohlen
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
Weitere ähnliche Inhalte
Was ist angesagt?
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
Was ist angesagt?
(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のイベントループを理解する
Ähnlich wie 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
Ähnlich wie 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事始め
Kürzlich hochgeladen
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Kürzlich hochgeladen
(8)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
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命令列専用の形式で高速化の可能性
Jetzt herunterladen