JavaScriptはWebブラウザで標準サポートされている唯一のプログラミング言語です。そのため書けるという人は多いのですが、自信をもってパフォーマンスの高いコードが書けると言い切れる人は少ないのではないでしょうか。 そんな方に使ってみて欲しいのがoptimize-jsです。既存のJavaScriptを最適化し、高速化するライブラリです。

optimize-jsの使い方

optimize-jsはnpmでインストールできます。

npm install -g optimize-js

後は処理対象のファイルを指定すると、標準出力で最適化されたコードが返ってきます。

optimize-js input.js > output.js

実際に試すと、括弧の付き方が変わっています。

$ diff test.js test.opt.js 
6c6
< return v.each(e.split(y), function(e, n) {
---
>         return v.each(e.split(y), (function(e, n) {
8c8
<         }), t

例えば次のようになります。

// 最適化前
!function (){}()
function runIt(fun){ fun() }
runIt(function (){})
  
// 最適化後
!(function (){})()
function runIt(fun){ fun() }
runIt((function (){}))

これによってどれくらい高速化されるのかについてですが、Chrome 52であれば45.87%高速化されたり、他のブラウザでも4%以上高速化されます。詳細はプロジェクトのページを読んでもらうとして、簡単に言うとJavaScriptエンジンにおける実行時の構文チェックのみにすることで最初の実行を高速化するとのことです。技術的に非常に面白いです。

optimize-jsはnode/JavaScript製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。

nolanlawson/optimize-js: Optimize a JavaScript file for faster initial load by wrapping eagerly-invoked functions