最新(2013/12/26)のmod_mrubyとngx_mrubyのパフォーマンス

論文の執筆や発表の準備で最新のmrubyに追随できていなかったのですが、ようやくmod_mrubyngx_mrubyを最新版のmrubyに対応させました。対応した項目は以下となります。これでmrubyの最新版でも動くようになりました。

  • mrb_stateが持っていたirepテーブルの削除に対応(バイトコードのGC化)
  • symbol関連のAPI変更に対応
  • ARENAの持ち方を修正

パフォーマンス比較をするには良いタイミングなので、最新版のmod_mrubyngx_mrubyのパフォーマンスを計測しました。

続きを読む

mrubyの拡張モジュールであるmrbgemのテンプレートを自動で生成するmrbgem作った

本エントリはmruby advent calendar 2013 18日目の記事になります。

17日目はtsahara@githubさんによる「mruby で C 言語の構造体をラップしたオブジェクトを作る正しい方法」という素晴らしい記事でした。今回の話題はこの話にも少し絡むので、まるで内容を見透かされていた気分です。

続きを読む

簡単にApacheモジュールのプロファイルをとってみよう

ApacheモジュールはApache httpdに組み込んで使うために、いまいちモジュール単体のテストやプロファイルやデバッグがやりにくい印象があります。

デバッグに関しては以前gdbを使った方法を紹介しましたが、今回は色々あるプロファイラの中で比較的楽にプロファイルが得られるOProfileを使ったプロファイルの取り方を紹介したいと思います。非常に簡単です。

ちなみに、プロファイラをかます事で対象そのものに影響を大きく与えてはいけないという意味で、この話だけでも研究になりそうですが、あまり深入りし過ぎるとまた別の方向にいってしまいそうなので、今回はそういった精度よりもどれだけ簡単にできるかというところに重点を置いた方法を紹介したいと思います。

続きを読む

mrubyでRedis使うのはオーバースペックな人のためにmruby-vedis作った

以前mruby-redisを作ったのですが、mrubyでRedis使う場合に、inetとかunix domain socketで使えなくても良いし、サーバー機能無しでIn-Memoryにアプリケーションと同一プロセス上で動いたり、必要だったらOn-Diskぐらいで共有できる程度の軽量なKVSを使いたいなぁ、でもなんだかんだちょっとした事にRedis使いやすいしまぁRedis使うか、なんて思っている人はいると思います。

そんな人のために、「サーバー機能無しでIn-Memoryにアプリケーションと同一プロセス上で動いたり、必要だったらOn-Diskぐらいで共有できる程度の軽量なKVS」であるVedisをmrubyから簡単に使えるmruby-vedisを作りました。Vedisについては公式サイトを見ると良いと思います。

続きを読む