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