macで初カキコ

と思ったら、はてなが書き込み可能にならないので、仕方なくParallels/IEからカキコ。Safari対応してないってことですか、はてなさん?しかもIMEのON/OFFができなかったので、IMEのキーアサインを無理やり変更して入力してます。カタカナに変換するのがチョー大変。

Safariでコピーした文字列をParallelsCoherenceで表示しているIEのウィンドウにペーストするときなんて、command-c / control-v という、もはや一生即時反応できないようなキーアサインになっていて、もうブラボーな感じです。

愚痴はさておき


iPhone SDK/Xcode/LLVM
今日は休日なので、先日インストールしたiPhone SDKの中に入っていたドキュメントをつらつらと読んでみました。すると、LLVMやらLLVM-GCCやらの初見の単語。ちとググってみたら、こんな濃いページがヒットしました。

http://alohakun.blog7.fc2.com/blog-entry-706.html

つい先日、C/C++のmix languageでコードを書いていて、ちょっとチューニングをと思って、ポインタからの間接参照していた関数呼び出しを静的呼び出しに書き換えたら、20%も早くなったので「やっぱ、メモリ上にあるポインタ変数を使って間接アドレッシングしてたら遅いわなぁ」と思っていた矢先、スタックマシンとレジスタマシン云々のやりとりを見て、ひとり「ふむふむ」と感心しておりました。

話題がそれましたが、要はLLVMってやつは、マイクロVM上で実行時プロファイリングを次回実行時にフィードバックしながら、自己最適化を行う、最適化手法ってことで良いんでしょうかね?
なにやら、Cruesoeや、Windows NT/Dec Alpha上のWindows/Intelエミュレータみたいですな(ちょっと違う?)。JITやEmulation、自己最適化は、もろ好物なので、しばらくフォローしてみたいと思います。

しかし、現状のCPUマーケットは、x86とARMで80%位を占めている気がするので、それに最適化した、開発言語とOSがあれば、VMがいらない気がしなくもないですが。実際、AndroidレジスタマシンになっているのもARM前提だからでしょうし。現場では、CPUの違いよりも、OS/APIの違いを吸収するために四苦八苦する場合が多いので、Virtual Machine よりも、Virtual OSが欲しいと思う今日この頃です。

  • Javaだって、MIDPとDoJaとAndroidと、みんなAPI違うし
  • Windows MobileBREWAPIがクリソツなのは何ででしょう?でもSymbianは仲間はずれ
  • WinNTも最初はMicro Kernelだったはずなのに。あんなに大きくなっちゃって
  • Mach/CMUは、どうなったのかしらん。ARM/Mobile用に最適化してみてはいかがでしょう:-)


Firefoxはてなを開いてみたら、書き込みできました。これでやっと、macから初カキコ;-)