Enviar pesquisa
Carregar
mrubyのfiberを試してみた
•
6 gostaram
•
986 visualizações
Kindai University
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 15
Baixar agora
Baixar para ler offline
Recomendados
Brookよもやま話
Brookよもやま話
Daichi Hiroki
Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
Hideyuki Takeuchi
MmapScanner
MmapScanner
Masahiro Tomita
Rubyでつくるスレッド
Rubyでつくるスレッド
Shugo Maeda
Js祭り
Js祭り
Yoshihiko Hoshino
20220111 SoftwareDesign #32 kitazaki
20220111 SoftwareDesign #32 kitazaki
Ayachika Kitazaki
Cocos2dx tips
Cocos2dx tips
Akihiro Matsuura
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
Recomendados
Brookよもやま話
Brookよもやま話
Daichi Hiroki
Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
Hideyuki Takeuchi
MmapScanner
MmapScanner
Masahiro Tomita
Rubyでつくるスレッド
Rubyでつくるスレッド
Shugo Maeda
Js祭り
Js祭り
Yoshihiko Hoshino
20220111 SoftwareDesign #32 kitazaki
20220111 SoftwareDesign #32 kitazaki
Ayachika Kitazaki
Cocos2dx tips
Cocos2dx tips
Akihiro Matsuura
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
ServerSideJavaScript
ServerSideJavaScript
Ryunosuke SATO
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
Satoru Abe
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Omochi-Renderer2@レイトレ合宿3!!! - お餅
omochi64
円環の理(Garbage Collection)
円環の理(Garbage Collection)
Narihiro Nakamura
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Satoru Abe
Webサーバの性能測定
Webサーバの性能測定
Ryo Maruyama
20131026 garbage collection in .net framework
20131026 garbage collection in .net framework
Takayoshi Tanaka
JRuby on Rails on JBoss
JRuby on Rails on JBoss
bose999
Maglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayac
Gosuke Miyashita
kpfx07 LT ruby-processingでイケメンになりたい
kpfx07 LT ruby-processingでイケメンになりたい
koki_h
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
kunst1080
第四回 #渋谷java オープニング
第四回 #渋谷java オープニング
Kazuhiro Serizawa
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
#readghc なう
#readghc なう
Kiwamu Okabe
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
Yuki Yazaki
CRubyGCの並列世界
CRubyGCの並列世界
Narihiro Nakamura
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
Tom Hayakawa
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話
翔 石井
20120721_ishkawa
20120721_ishkawa
Yosuke Ishikawa
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフ
Narihiro Nakamura
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
Mais conteúdo relacionado
Mais procurados
ServerSideJavaScript
ServerSideJavaScript
Ryunosuke SATO
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
Satoru Abe
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Omochi-Renderer2@レイトレ合宿3!!! - お餅
omochi64
円環の理(Garbage Collection)
円環の理(Garbage Collection)
Narihiro Nakamura
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Satoru Abe
Webサーバの性能測定
Webサーバの性能測定
Ryo Maruyama
20131026 garbage collection in .net framework
20131026 garbage collection in .net framework
Takayoshi Tanaka
JRuby on Rails on JBoss
JRuby on Rails on JBoss
bose999
Maglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayac
Gosuke Miyashita
kpfx07 LT ruby-processingでイケメンになりたい
kpfx07 LT ruby-processingでイケメンになりたい
koki_h
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
kunst1080
第四回 #渋谷java オープニング
第四回 #渋谷java オープニング
Kazuhiro Serizawa
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
#readghc なう
#readghc なう
Kiwamu Okabe
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
Yuki Yazaki
CRubyGCの並列世界
CRubyGCの並列世界
Narihiro Nakamura
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
Tom Hayakawa
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話
翔 石井
20120721_ishkawa
20120721_ishkawa
Yosuke Ishikawa
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
Mais procurados
(20)
ServerSideJavaScript
ServerSideJavaScript
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Omochi-Renderer2@レイトレ合宿3!!! - お餅
円環の理(Garbage Collection)
円環の理(Garbage Collection)
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Webサーバの性能測定
Webサーバの性能測定
20131026 garbage collection in .net framework
20131026 garbage collection in .net framework
JRuby on Rails on JBoss
JRuby on Rails on JBoss
Maglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayac
kpfx07 LT ruby-processingでイケメンになりたい
kpfx07 LT ruby-processingでイケメンになりたい
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
第四回 #渋谷java オープニング
第四回 #渋谷java オープニング
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
#readghc なう
#readghc なう
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
CRubyGCの並列世界
CRubyGCの並列世界
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話
20120721_ishkawa
20120721_ishkawa
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Semelhante a mrubyのfiberを試してみた
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフ
Narihiro Nakamura
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
Introduction pp.js
Introduction pp.js
Mizushima Kazuhiro
Rubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRuby
mametter
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
chonaso
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
Semelhante a mrubyのfiberを試してみた
(9)
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフ
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Introduction pp.js
Introduction pp.js
Rubinius Under a Microscope
Rubinius Under a Microscope
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRuby
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Mais de Kindai University
Blockchain and Virtual Currency- Technical issues -
Blockchain and Virtual Currency- Technical issues -
Kindai University
Gbec finance and blockchain
Gbec finance and blockchain
Kindai University
Blockchian definition
Blockchian definition
Kindai University
Blockchain economy
Blockchain economy
Kindai University
ブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンス
Kindai University
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー
Kindai University
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版
Kindai University
ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築
Kindai University
やっぱりブロックチェインより仮想通貨
やっぱりブロックチェインより仮想通貨
Kindai University
FinTechと金融サービスの将来像
FinTechと金融サービスの将来像
Kindai University
Congre chain説明資料
Congre chain説明資料
Kindai University
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech
Kindai University
ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題
Kindai University
ブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocol
Kindai University
Open fintech and Kachatter
Open fintech and Kachatter
Kindai University
電気マネーでエネルギー問題解決
電気マネーでエネルギー問題解決
Kindai University
仮想通貨実験計画
仮想通貨実験計画
Kindai University
Bit Nexus
Bit Nexus
Kindai University
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)
Kindai University
薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト
Kindai University
Mais de Kindai University
(20)
Blockchain and Virtual Currency- Technical issues -
Blockchain and Virtual Currency- Technical issues -
Gbec finance and blockchain
Gbec finance and blockchain
Blockchian definition
Blockchian definition
Blockchain economy
Blockchain economy
ブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンス
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版
ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築
やっぱりブロックチェインより仮想通貨
やっぱりブロックチェインより仮想通貨
FinTechと金融サービスの将来像
FinTechと金融サービスの将来像
Congre chain説明資料
Congre chain説明資料
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech
ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題
ブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocol
Open fintech and Kachatter
Open fintech and Kachatter
電気マネーでエネルギー問題解決
電気マネーでエネルギー問題解決
仮想通貨実験計画
仮想通貨実験計画
Bit Nexus
Bit Nexus
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)
薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト
mrubyのfiberを試してみた
1.
mrubyのFiberを 試してみた Rubyist九州、近畿⼤大学 ⼭山崎重⼀一郎郎
2.
Fiberと関数 ¡ Fiber: オブジェクトを継続利利⽤用する ¡ 関数:呼ばれるたびに動作環境を⽣生成
3.
組込み処理理 ¡ 永続的なプロセスが動いている 定期的なメモリーの開放が必要 ¡ センサーからの時系列列データの収集 正確な時間間隔で動いてほしい GCで不不意に⽌止まるのは困る
4.
実験してみた ¡ Rubyとmrubyを使⽤用(MacOSX上で) ¡ RubyはGC.statでヒープ量量を計測可能 ¡ mrubyは実⾏行行時間のみ計測可能
5.
GC.stat Rubyの動作環境 GC.stat { :count
=> 18, #GCの回数 :heap_̲used => 77, # :heap_̲length => 77, :heap_̲increment => 0, :heap_̲live_̲num => 23287, #⽣生きているヒープの数 :heap_̲free_̲num => 8115, :heap_̲final_̲num => 0, }
6.
移動平均 ¡ センサーからのデータの系列列の平均 新しい⼊入⼒力力のたびに計算 バッファのサイズは⼀一定
7.
移動平均関数版 (バッファはクロージャでメモ化) SIZE=256
#バッファサイズ aveb=lambda{|b|i=0 #クロージャ作成用関数 lambda{b[i]=rand(1024) #センサー入力のつもり i=(i+1)%SIZE b.reduce(:+).to_f/SIZE}} #移動平均の計算 buf=Array.new(SIZE,0) ave=aveb[buf] #移動平均関数の生成
8.
移動平均ファイバ版 SIZE=256 avefb=lambda{|b|i=0 Fiber.new{loop{b[i]=rand(1024)
i=(i+1)%SIZE Fiber.yield b.reduce(:+).to_f/SIZE}}} buf=Array.new(SIZE,0) avef=avefb[buf]
9.
1e+05 C-Rubyで 関数を100回実⾏行行したときの ヒープサイズと実⾏行行時間の変化 4e+04 ヒープサイズ 6e+04 rubyfunc 8e+04 0 20 40 60 80 100 rt 実⾏行行時間 0.0150
0.0155 0.0160 0.0165 0.0170 Time 0 20 40 60 Time 80 100
10.
C-Rubyで Fiberを100回実⾏行行したときの ヒープサイズと実⾏行行時間の変化 29000 27000 f ヒープサイズ 31000
20 40 60 80 100 60 80 100 Time 0.018 0.019 0.020 0.021 0.022 0.023 実⾏行行時間 t 0 0 20 40 Time
11.
mrubyは GCがちょっと違う ¡ インクリメンタルに⾏行行われる ¡ GC.statはない ¡ コンパイルされる
12.
mruby 実⾏行行時間移動平均関数版 0.125 0.123 t1 0.127 0.129 0 20 40 60 Time 80 100
13.
mruby 実⾏行行時間移動平均ファイバー版 0.130 0.128 0.126 t 0.132 0.134 0 20 40 60 Time 80 100
14.
----ave.rb-- SIZE=256 aveb=lambda{|b|i=0 lambda{b[i]=rand(1024)
i=(i+1)%SIZE b.reduce(:+).to_f/SIZE}} buf=Array.new(SIZE,0) ave=aveb[buf] test1=lambda{m=[] 100.times{t0=Time.now (1..1000).map{ave[]} m.push (Time.now-t0)} m} puts test1[] mruby 移動平均関数版
15.
----avefb.rb-- SIZE=256 avefb=lambda{|b|i=0 Fiber.new{loop{b[i]=rand(1024)
i=(i+1)%SIZE Fiber.yield b.reduce(:+).to_f/ SIZE}}} buf=Array.new(SIZE,0) avef=avefb[buf] test2=lambda{m=[] 100.times{t0=Time.now (1..1000).map{avef.resume} m.push (Time.now-t0)} m} puts test2[] mruby 移動平均Fiber版
Baixar agora