ブラウザとnode.js用の高速javascript gzip

pakoプロジェクトは最近登場しました;これは、データの圧縮と解凍のための有名なzlibライブラリのjavascriptポートです。



テスト結果は非常に興味深いです。



1年前のv8エンジンでは、計算速度はCで書かれた元のライブラリよりも1.5倍しか遅くありませんでした。さらに最近のノードでは、ギャップは1.2〜1.3倍に減少しました。 公開されているベンチマークは次のとおりです。



ノードv0.10.26、1 MBサンプル:



deflate-dankogai x 4.74 ops /秒±0.68%(15回のサンプリング)

deflate-gildas x 4.61 ops / sec±1.73%(15回のサンプリング)

deflate-imaya x 3.10 ops /秒±3.73%(11回のサンプリング)

! deflate-pako x 7.11 ops /秒±0.26%(サンプリング21回)

deflate-pako-untyped x 4.34 ops / sec±1.35%(14回のサンプリング)

deflate-zlib x 14.34 ops /秒±2.90%(68回のサンプリング)

inflate-dankogai x 31.29 ops /秒±0.72%(56回のサンプリング)

inflate-imaya x 30.49 ops /秒±0.84%(53回のサンプリング)

! inflate-pako x 70.00 ops /秒±1.60%(サンプリング71回)

inflate-pako-untyped x 17.67 ops /秒±1.27%(サンプリング33回)

inflate-zlib x 70.82 ops / sec±1.69%(サンプリング回数81回)




ノードv0.11.11、1MBサンプル:



deflate-dankogai x 5.61 ops / sec±0.30%(17回のサンプリング)

deflate-gildas x 4.97 ops / sec±5.68%(16回のサンプリング)

deflate-imaya x 3.53 ops /秒±4.19%(サンプリング12回)

! deflate-pako x 11.52 ops /秒±0.23%(32回のサンプリング)

deflate-pako-untyped x 5.12 ops / sec±1.44%(17回のサンプリング)

deflate-zlib x 14.33 ops / sec±3.34%(63回のサンプリング)

inflate-dankogai x 42.96 ops /秒±0.19%(57回のサンプリング)

inflate-imaya x 85.05 ops /秒±1.07%(サンプリング71回)

! inflate-pako x 97.58 ops /秒±0.69%(80回のサンプリング)

inflate-pako-untyped x 18.06 ops /秒±0.65%(56回のサンプリング)

inflate-zlib x 60.60 ops / sec±2.04%(67回のサンプリング)




レイヤーがシステムライブラリに作成される場合、マーシャリング(オブジェクトをjavascriptに転送する、またはその逆)は無料ではないことに注意してください。 そのため、「簡単な」インフレーションでは、「javascriptコードがコードよりも速い」ときに面白い結果が得られました。 もちろん、これはそうではありません。 プロセッサの負荷が非常に高いデフレートテストでは、マーシャリングにかかる​​費用の割合は小さく、速度比はもっともらしいようです。



これらはasm.jsではありません。 通常のJavaScript。 残念ながら、ベンチマークはv8専用です。 しかし、他のブラウザー間の速度の関係は、有名なjszipライブラリーのトラッカーで見ることができます。その作者は現在pakoをテストしています。



All Articles