asm.jsでFFTしてみた、のだが。アーカイブ)asm.jsでFFTしてみた、のだが。Tweet最近一部で話題の"asm.js"。GIGAZINE:「JavaScriptがネイティブアプリに近い実行速度まで高速化」たとえばこんな記事があります↑。すんごく期待してしまったわけですよ、これがFirefox22で搭載されると。事で正式には6月リリースですがNightlyビルドではもう使えるらしいので、試してみました。ある程度実用になりそうなあたりを狙ってFFTをやらせてみます。書いたのがこちら:asmjstest.html2048ポイントのFFTを変換/逆変換を繰り返して速度を見ます。元波形は矩形波で変換後の波形(緑、元の矩形波と同じはず)とスペクトル(赤)が表示されます。[ASM]と[NoASM]は同じ結果になります。10000回12164あれ、うん...。速い事は速いのだけど。なんかもっとこう爆速な感じを期待してたのだが?処理にもよるでしょうけど、せいぜい通常のJavascriptの2倍程度の速度を狙う感じでしょうか。stdlib経由で数値関数なんかも使えるのですが、オーバーヘッドが大きいようでできれば使用を避けた方が良いように思います。的なノウハウがないものかと模索してるんですが、なかなかうまくいかんです。爆速だったら入出力の方法とか色々整備したい所だけど、ちょっとモチベーションが下がりました。書いたのでおいておきますけど。複素数入力で、正規化する/しないのフラグがあります。汎用性を持たせようとしてたので通常の配列からデータを渡せるようにして、ついでにここでスクランブルまでやっています。https://github.com/g200kg/Fft-asm.jsなお、asm.jsの仕様はここhttp://asmjs.org/spec/latest/正直結構書くにくいです。ように常に型を意識しながら書く配列は通常コードと共有するArrayBuffer、1つのみを使いまわす他にもたくさん制限があるのでコンソールでasm.js化のエラーが出てないか確認しながら書く感じになります。名前のせいで過大な期待を煽りすぎなのだと思う。冷静に考えれば、普通のJSの2倍くらいの速度が出るのは凄い事かも知れん」、となんとなくフォローしておく。嫌いじゃないんだよ、この手のやつ。