mojavy.com

組み込み用プログラミング言語のパフォーマンス比較

April 21, 2015 at 01:10 AM | categories: v8, lua, lisp, programming, ruby |

組み込み用のプログラミング言語といえばLuaがよく使われるけど、最近はmrubyやsquirrelもあって選択肢が広がってきた感があるのでどういう特徴があるのかを知るためにベンチマークをやってみた。

今回対象にしたのは以下。

  • Lua - v5.1
  • LuaJIT - v2.0.2
  • squirrel - v3.0.7
  • V8 - v3.30
  • mruby - v1.1.0
  • ecl (Embeddable Common-Lisp) - v15.3.7

ここでのベンチマークは言語自体のスピードの比較ではなく、どちらかというと組み込む際に必要なオーバーヘッドやホスト言語側での処理にかかる部分に重点を置いた。

ベンチマークの処理では、関数呼出し比較用のecho関数と、テーブル操作比較用のinvert関数を組み込み言語側に実装して、それを繰り返し呼び出すようにした。

また、なるべく公平になるように、組み込み言語側の関数は初期化時にグローバルスコープ(組み込み言語側のグローバルスコープ)に登録しておき、すべて同じインターフェースから呼ぶようにした。

使用したコードは以下。そのうち別の言語とか追加するかもしれない。

https://github.com/taksatou/embench

結果

echo 100000 回実行

echo

invert 100000 回実行

invert

https://gist.github.com/taksatou/8de85bbfe79548864cf5#file-result-md

備考

  • control は同等の処理をホスト言語側で実装したもの
  • LuaJITはLD_PRELOADで切り替えた
  • eclはechoが遅くてやるきを失ったのでinvertのほうは省略

所感

  • Luaがパフォーマンスと組み込みやすさの点でやはり一番使いやすい。LuaJITをつかうとさらに数割速くなる。
  • squirrelは言語機能的にはluaのスーパーセットという感じで、パフォーマンスもluaと同じ程度。ただしドキュメントはあまりない。
  • V8はマルチスレッド環境や大規模なものには向いてるかもしれない。組み込みはちょっとめんどくさい。
  • mrubyはechoだと意外と健闘しているがテーブル操作は速くない。組み込みはLuaと同じくらい簡単。
  • eclにはもうちょっとがんばってほしい。組み込み方法に問題があるのかもしれない。


最近読んだ本

April 05, 2015 at 01:23 PM | categories: books |

読んだ本を公開するのは何となく恥ずかしいので今までやらなかったけど、最近忘れるスピードが加速しているので記録のために書くことにした。1

あと、ブログをしばらく書かないとさらにブログを書くのが億劫になるのでどうでもいいことでも書くことにした。

Encyclopedia of Spirits

妖精とか神話にでてくる悪魔とか霊的ななにかについての図鑑。なにかおもしろい図鑑ないかと思ってさがしてたときにみつけた。kindleだと4ドルくらいだが、内容がマニアックでおもしろい。

エルフとかドワーフとかメジャーどころはもちろん、日本やアフリカのものや、現代のエルビスとか幽遊白書のコエンマとかまで載っている。

Spice: Flavors of the Eastern Mediterranean

スパイスについての知識がほしかったので読んでみた。スパイスをつかったレシピ本だけど、スパイスを基準にレシピがソートされていてスパイスをどうつかえばいいかの理解を深めやすい。

Black Hawk Down

先日サバゲーをやったときに出会ったミリオタの知識の豊富さに感銘をうけたので戦争ものの小説を読みたくなった。米軍のスラングとかに無駄に詳しくなれる気がする。Hooah!

最強 世界の歩兵装備図鑑

アサルトライフルの作動機構についての解説がよかった。

村上式シンプル英語勉強法

この本の影響で最近英語の文章を読む量を増やした。でもこの本の内容はスパルタンすぎて大体実践できてない。

The Godwulf Manuscript (The Spenser Series Book 1) (English Edition)

村上式シンプル英語勉強法 で紹介されていたので。それなりにおもしろくて読みやすい。

発信型英語10000語レベル スーパーボキャブラリービルディング(CD3枚付) (CD BOOK)

同じく 村上式シンプル英語勉強法 で紹介されていたので。第1章の実力診断テストで心を折られたけどめげずにちまちま進めている。

Oxford Picture Dictionary: English/ Japanese

さらに同じく 村上式シンプル英語勉強法 で紹介されていた。 簡単すぎるかと思ったけど意外と知らない単語がある。コロケーションもあわせてでてるので結構よい。

葉と実でわかる 街路樹の呼び名事典

植物についての理解を深めたいけど図鑑はもちあるきたくない。電子版の植物図鑑を探してたときにみつけた。読み物としては悪くないけど、この本だけで植物の同定ができるようにはあまりならない。

本草図譜 十三 (ソニー・デジタル)

kindleで無料で見れる草図鑑シリーズ。暇潰しにはちょうどいい。

決断力 角川oneテーマ21

何かのときに羽生さんすごいと思ったので。編集者の意向なのかわからないが、ビジネスに関連した教訓じみた話にもっていこうとするのがちょっと鬱陶しい。それを除けば全体的におもしろかった。

道をひらく

羽生さんの本を読み終わったときにkindleでレコメンドされて評価も高かったので読んでみた。良い話ばかりだが特に新しいことはなかった。

計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

MCMCについて理解を深めるため。イジングモデルとか 様々な分野での応用例が紹介されていておもしろい。

詳解 Swift

swiftを書く必要にせまられたので。知りたいところだけ拾い読みした。前から思っていたが、kindleは技術本を拾い読みするにはあまり向かない。

エリック・エヴァンスのドメイン駆動設計

買ったのは年末だけど最近になってまじめに読みはじめた。まだDDDを理解してない気がするのでノーコメント。


  1. 読んだというのは読了したという意味ではない 



About Me

pic
mojavy

Recent posts






Categories



Badges