Home 暗号プロセッサ OpenICF3


JavaScriptとPNaCLの性能評価

2014年4月27日 更新、SIMDなしの通常ffmpegを追加しました。

動画変換(FFMPEG)を使ってJavaScriptとPNaCLの性能評価らしきものをやってみた。 JavaScript版のFFMPEGPNaCL版のFFMPEGも 性能を評価できるものではないし、私もFFMPEGの性能について良くわからない状態ですが、 やってみるだけやってみたので結果を報告します。

JavaScript版のFFMPEGがlibx264に対応していない関係で4.39MBのMP4をWMVに変換するテストをしました。

通常64bit FFMPEG 2秒
PNaCL FFMPEG 11秒 (Chrome 34)
JavaScript FFMPEG 25秒 (FireFox 28)

PNaCLが5倍遅く、JavaScriptが12倍遅いという結論になった。 性能評価に使ったパソコンのCPUはCore i7です。 PNaCLは32bitCPUと64bitCPUの両方で動作するバイナリであること、 現時点ではSIMD命令が使えないことなどを考えると 5倍遅いと言われても、そうかなという気がする。 このテストでは、GPUは全く使われていません。 FFMPEGのバージョンは、通常FFMPEGが2.1.3、PNaCL FFMPEGが2.1.3、JavaScript FFMPEGはgit-2014-01-19-6b1f032です。

次はGPUを含めたテスト、FFMPEGのlibx264でOpenCLを有効にするオプションがあったので使ってみました。 59.7MBのMP4をMP4(libx264)に変換するテストです。
通常64bit FFMPEG(OpenCL 無) 47秒
通常64bit FFMPEG(OpenCL 有) 50秒
通常32bit FFMPEG(OpenCL 無 SIMDなし) 261秒
PNaCL FFMPEG(OpenCL 無) 366秒
GPUを使っても速くならないようです。PNaCLは8倍遅いという結論、、、 SIMDなしの32bit FFMPEGの結果からPNaCLが遅い原因は、SIMD命令が使えないことによるものだと推測できます。

JavaScript版もPNaCL版も実際に試すことができるので、良かったら試して ブログで報告してください。
JavaScript版 FFMPEG
PNaCL版 FFMPEG
JavaScript版は、FireFoxが多分、高速です。

最後に

JavaScript版もPNaCL版も、まだまだ遅いですが、サンドボックス内で動作するため 安全です。動画変換ソフトにハードディスクの中を見られたり、破壊されたりする心配や、 ウィルスの心配がないメリットは大きいと思うので、ぜひ使ってください。


AdMax広告