狠狠撸

狠狠撸Share a Scribd company logo
mruby for
embedded
systems
2012/07/29
TokyuRuby会議05
高橋征義?やまねゆりえ
※某弊社の宣伝とかRuby
Conf渡航支援募集中とか
札幌Ruby会議2012LT
募集中とかLL Decade
参加者募集中とかの話は
時間がないので今回は割愛
させていただきます(_o_)
本日のお題

mrubyとは
●
組込み環境について
●
mrubyの課題
●
デモ
●
解決策
●
実装
●
mrubyとは

軽量Ruby
●
平成22年度地域イノベーショ
ン創出研究開発事業「軽量
Rubyを用いた組込みプラッ
トフォームの研究?開発」の
成果
●
ささださんが作ってない方の
Ruby
●
軽量Ruby を用いた組込みプラットフォームの研究?開発
http://www.pref.fukuoka.lg.jp/uploaded/life/50/50557_12372800_misc.pdf
http://el.jibun.atmarkit.co.jp/rails/2012/04/rubymruby-2004.html
組込み環境

家電から自動車、ロケットまでいろい
ろ
●
コストと性能のバランス
●
PCほどリッチじゃない(ことも多
い)
●
OSなし or RTOS(VxWorks,
μITRON, 独自の謎OSなど)
●
mrubyの課題

意外にでかい(当社比)
●
特に実行時の動的メモリ確保がでか
い
●
数MBくらいのメモリ環境を想定し
ているらしい(まつもとさん談)
●
起動だけで30KB超える
●
100KBくらいでも動かすのがしん
どそう
●
デモ

マイコン: Interface付録のFM3(Cortex-M3)
のエミュレータ(QEMU 1.0.1)
OS:  TOPPERS/ASP 1.7.0
アプリ:  sample1のtask2としてmruby実行
●

対策

ハッシュ(khash.h)を使わないよ
うにする
– シンボル管理で名前?数値の対応
付けに使われているデータ構造を
ただの配列にする
– 遅い、けど小さくなる
●

対策

ハッシュ(khash.h)を使わないよ
うにする
– 内部でインスタンス変数、メソッ
ド定義に使われているデータ構造
をセグメントリストに置き換える
(PyMiteのパクリ)
– 遅い、けど小さくなる
●

対策

parserとcodegenを捨てる
– VM+ライブラリのみ
– あらかじめバイトコードコンパイ
ルしたRubyスクリプトを実行
– 别惫补濒とかダメゼッタイ
●

対策

初期化時のメモリ確保をケチる
– 足りなくなったら後で確保するら
しい
– ついでにシンボルの上限も300
個にする(あふれたら終了)
●

対策

Ruby標準クラスを捨てる
– 試してみたけどいろいろ不具合が
起きやすいのでだいたい戻した
– Hash、Range、Struct、Ti
me、Math、Regexpがない
(Struct、Time、Math、Re
gexpはマクロでオフにする設定
がある)
●

実装

コードはGitHubに上がってます
https://github.com/yurie/mruby/tree/lessmemory

– コミットログが日本語ですみませ

ん…
# Macなど
$ make

実行方法

# FM3用 (Yagarto GNU ARM toolchain用)
$ make -f Makefile.fm3
続きは札幌で!
※選考には落ちたので
 これからLT応募書きます…

More Related Content

What's hot (20)

PDF
罢测辫别厂肠谤颈辫迟への入口
Sunao Tomita
?
PDF
笔测迟丑辞苍おじさんの飞别产2辫测挑戦记
Yoshiyuki Nakamura
?
PDF
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Shunsuke Watanabe
?
PPTX
.NET Standard で PostgreSql を使ってみた
m ishizaki
?
PDF
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
?
PDF
React VR ことはじめ
Kazuhiro Hara
?
PDF
翱辫别苍尝补测别谤蝉で始める地図の操作
Yuki Yazaki
?
PDF
?搁耻产测とプログラミング言语の潮流
Kazuhiko Kato
?
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
?
PPTX
搁补颈濒蝉5クイックスタート
Hirata Tomoko
?
PDF
Crystal on cygwin (WIP)
fd0
?
PDF
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
Takuya Mukohira
?
PDF
で、次は何がくるの? - 第2回 TIS Matsuri
Yoshitaka Kawashima
?
PDF
サーバサイド狈辞诲别の使い道
pospome
?
PDF
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
?
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
?
PDF
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
?
PDF
顿箩补苍驳辞と飞别产2辫测を补辫补肠丑别に组込む
2bo 2bo
?
PDF
狈辞诲别について
Natsuki Yamanaka
?
PDF
Rk10trailer
mseki
?
罢测辫别厂肠谤颈辫迟への入口
Sunao Tomita
?
笔测迟丑辞苍おじさんの飞别产2辫测挑戦记
Yoshiyuki Nakamura
?
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Shunsuke Watanabe
?
.NET Standard で PostgreSql を使ってみた
m ishizaki
?
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
?
React VR ことはじめ
Kazuhiro Hara
?
翱辫别苍尝补测别谤蝉で始める地図の操作
Yuki Yazaki
?
?搁耻产测とプログラミング言语の潮流
Kazuhiko Kato
?
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
?
搁补颈濒蝉5クイックスタート
Hirata Tomoko
?
Crystal on cygwin (WIP)
fd0
?
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
Takuya Mukohira
?
で、次は何がくるの? - 第2回 TIS Matsuri
Yoshitaka Kawashima
?
サーバサイド狈辞诲别の使い道
pospome
?
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
?
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
?
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
?
顿箩补苍驳辞と飞别产2辫测を补辫补肠丑别に组込む
2bo 2bo
?
狈辞诲别について
Natsuki Yamanaka
?
Rk10trailer
mseki
?

Similar to Tokyurubykaigi05 (20)

PDF
mruby for embedded systems
masayoshi takahashi
?
PDF
搁耻产测颁辞苍蹿の话の続きのおはなし
yamanekko
?
PPTX
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
?
PDF
さくルビー.狈别迟诞生
三七男 山本
?
PPTX
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! ?小学生からはじめる Ruby プログラミング?
宏治 高尾
?
PPTX
尘谤耻产测 滨辞罢プラットフォーム
Hiromasa Ishii
?
PDF
Hello Ruby
Takahiro KUREBAYASHI
?
PPTX
搁耻产测と搁のおいしい関係
sady_nitro
?
PDF
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
Kazuaki Tanaka
?
PDF
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Masaya Konishi
?
PDF
超簡単!? ActiveAdminて?作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
Kanako Kobayashi
?
PPT
惭谤耻产测の始め方
Masaki Muranaka
?
PDF
nomlab_okayamaruby_slide
nomlab
?
PPTX
RubySeminar16_Analyze
sady_nitro
?
PDF
mrubyを使った クラウド連携
三七男 山本
?
PPTX
小学生3年生から使える搁耻产测のビジュアルプログラミングエディタ「スモウルビー」と、それを活用した任意団体「搁耻产测プログラミング少年団」摆第7回フクオカ...
宏治 高尾
?
PDF
Sinatra軽量Web開発 - LOUPE Study #1
Takuya Mukohira
?
PDF
Building Static Website With Github And Jekyll
Yoji Shidara
?
PPTX
jupyter notebook (jupyterhub) で ruby とグラフ
Koichi Shimozono
?
PPTX
尘谤耻产测/肠机能绍介20160329
shimane-itoc
?
mruby for embedded systems
masayoshi takahashi
?
搁耻产测颁辞苍蹿の话の続きのおはなし
yamanekko
?
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
?
さくルビー.狈别迟诞生
三七男 山本
?
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! ?小学生からはじめる Ruby プログラミング?
宏治 高尾
?
尘谤耻产测 滨辞罢プラットフォーム
Hiromasa Ishii
?
搁耻产测と搁のおいしい関係
sady_nitro
?
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
Kazuaki Tanaka
?
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Masaya Konishi
?
超簡単!? ActiveAdminて?作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
Kanako Kobayashi
?
惭谤耻产测の始め方
Masaki Muranaka
?
nomlab_okayamaruby_slide
nomlab
?
RubySeminar16_Analyze
sady_nitro
?
mrubyを使った クラウド連携
三七男 山本
?
小学生3年生から使える搁耻产测のビジュアルプログラミングエディタ「スモウルビー」と、それを活用した任意団体「搁耻产测プログラミング少年団」摆第7回フクオカ...
宏治 高尾
?
Sinatra軽量Web開発 - LOUPE Study #1
Takuya Mukohira
?
Building Static Website With Github And Jekyll
Yoji Shidara
?
jupyter notebook (jupyterhub) で ruby とグラフ
Koichi Shimozono
?
尘谤耻产测/肠机能绍介20160329
shimane-itoc
?
Ad

More from yamanekko (12)

PDF
Model2code mruby 2018
yamanekko
?
PDF
Ev3rt and mruby-ev3rt 2018ver
yamanekko
?
PDF
mruby can be more lightweight
yamanekko
?
PDF
Rubykaigi2016 High Tech Seat in mruby
yamanekko
?
PDF
Domo Arigato, Mr(uby) Roboto
yamanekko
?
PDF
RubyKaigi2015 making robots-with-mruby
yamanekko
?
PDF
尘谤耻产测で贰罢ロボコンに出よう
yamanekko
?
PDF
Writing mruby Debugger
yamanekko
?
PDF
How to debug mruby (rubyconftw2014)
yamanekko
?
PDF
ルネサスナイト
yamanekko
?
PDF
How to control physical devices with mruby
yamanekko
?
PDF
使用贰肠濒颈辫蝉别快乐的尘谤耻产测开发
yamanekko
?
Model2code mruby 2018
yamanekko
?
Ev3rt and mruby-ev3rt 2018ver
yamanekko
?
mruby can be more lightweight
yamanekko
?
Rubykaigi2016 High Tech Seat in mruby
yamanekko
?
Domo Arigato, Mr(uby) Roboto
yamanekko
?
RubyKaigi2015 making robots-with-mruby
yamanekko
?
尘谤耻产测で贰罢ロボコンに出よう
yamanekko
?
Writing mruby Debugger
yamanekko
?
How to debug mruby (rubyconftw2014)
yamanekko
?
ルネサスナイト
yamanekko
?
How to control physical devices with mruby
yamanekko
?
使用贰肠濒颈辫蝉别快乐的尘谤耻产测开发
yamanekko
?
Ad

Tokyurubykaigi05