Sunflat のブログ

ソフトウェア開発についての話題が多いかも

Haxe NME

NMEという、Haxe言語用のクロスプラットフォームライブラリがあり、Flash風のAPIを使って書いた単一のコードから、Flashhtml5iOSandroidmacwindowsなど、色々なプラットフォーム向けの実行ファイルを出力できる。

JavaScript (中略) ハッカソンに参加したので、NMEを使って生成されたアプリの、いくつかのプラットフォーム上での実行時間を比較してみた。

比較には、id:yoshihiro503さん作のAOBench Haxe版を、NME用に移植したものを使った。ソースはこちらhtml5版の生成されたアプリはこちら


実行にかかった時間(ms)

10回(iPhone 4shtml5のみ3回)測定した平均値です。

MacBook Pro (15-inch Mid 2010, Core i7 2.66GHz) で実行
html5 (JavaScript) Chrome html5 (JavaScript) Safari Mac nativeアプリ (C++) Flash
1574.1 ms 2812.3 ms 1092.9 ms 3601.8 ms
iPhone 4s で実行
html5 (JavaScript) Safari iOS nativeアプリ (C++)
47691.3 ms 7271.2 ms
感想

NME のセットアップメモ

追記:NMEのインストーラを使うと、いくつかの手順やコマンドの名前を省略てきて便利なようです(コメント欄参照)。

haxelibのインストール方法はこちら

Mac上でのNMEのセットアップ手順(うろ覚え)

sudo haxelib install nme
sudo haxelib run nme setup html5
   (jeashライブラリをインストール)
sudo haxelib run nme setup flash
sudo haxelib run nme setup ios
  (XCode4を別途インストール)
sudo haxelib run nme setup mac
sudo haxelib install hxcpp
  (これを忘れると、Source Path "libstd..." does not exists、などのエラーが出る)
sudo /usr/bin/xcode-select -switch  /Applications/Xcode.app/Contents/Developer
  (これを忘れると、/Developer パスが無いと言われる)

実行

haxelib run nme test application.nmml html5
haxelib run nme test application.nmml flash
haxelib run nme test application.nmml mac
haxelib run nme test application.nmml ios