ある日、非常に控えめのOS上で動くプログラムをC++で作って欲しいと頼まれました。C++はいろいろと面倒なのであまりできれば使いたくありません。そこで、だめもとで交渉したところ「リアルタイム性が保証できるんだったらJavaでもいいですよ」ということだったので、俺様JavaVM(Virtual Machine)を作ることにしました。そういう訳で、たまに俺様JavaVMの状況を報告します。

やると決めてから1.5ヶ月程経った今はというと、さっそく俺様JavaVM性能評価用プロトタイプが動いています。

テスト用Javaプログラムが動いたときは「フィールドアクセスできたぁぁぁ!メソッドもー!ループ回っぁxcssふぁsd!!!ハァハァ。。。危なかった。」な具合に大はしゃぎですよ。とりあえず、他の人の仕事を無理やり止めて見せて回りました。

性能はというと、急いで作った割りに速くて驚いています。部分的にはSunのJavaVMよりも速いですが、足りない機能を足してゆくと遅くなるかもしれないので油断できません。それにしても、SunのJavaVM速いですね。全体的にSunのJavaVMに勝つには、そうとうCPUアーキテクチャを意識してC++のコード書かなきゃいけない感じです。そういう訳で、最近は「How to optimize for the Pentium family of the microprocessors」を勉強しています。

かかった期間はというと、既存の実装やライセンスやらの調査期間を除くと1ヶ月程度です。
がんばればなんとかなるもんですね。

これからは次の順で作業を進めてゆきます。

  1.  プロトタイプの性能評価を結果を踏まえ、最適なアーキテクチャを検討し、本番実装
  2. クラスライブラリの調達と結合
  3. ターゲット環境へのカスタマイズ
  4. 性能改善

年末までにできるのか!

がんばらねば。

カテゴリー: 技術情報