JSX minifierの圧縮性能
JSX compilerのソースコードで検証してみました*1。
Mode | Size(KiB) | Ratio |
---|---|---|
original | 1507 | 1.00 |
JSX minifier | 277 | 0.18 |
Closure Compiler/D | 602 | 0.40 |
Closure Compiler/A | 301 | 0.20 |
対象にしたソースコードがJSXから変換したJSというやや特殊な状況ですが、Closure CompilerのADVANCED_OPTIMIZATIONSよりもサイズが小さくなりました。また、ADVANCED_OPTIMIZATIONSと異なりJSX minifier*2はコードを破壊する圧縮は一切行わないので、圧縮したらコードが動かなくなるということが非常に起こりにくくなっています。しかしそれでも、JSXの豊富な型情報を使って圧縮すればADVANCED_OPTIMIZATIONSよりもサイズを小さくできるというわけですね。
実際に使ったコマンドは以下のとおりです。
jsx --version # JSX v0.9.31 # # Original jsx --release src/jsx-node-front.jsx | wc -c # JSX minifier jsx --release --minify src/jsx-node-front.jsx | wc -c # Closure Compiler/D (default) jsx --release src/jsx-node-front.jsx | closure-compiler | wc -c # Closure Compiler/A (advanced optimizations) jsx --release src/jsx-node-front.jsx | closure-compiler --compilation_level ADVANCED_OPTIMIZATIONS | wc -c
*1:v0.9.89での追試はこちら https://gist.github.com/gfx/987d7303410923b6fc63
*2:JSXコンパイラ組み込みの圧縮+esmangle http://constellation.github.io/esmangle/