esbuild
https://github.com/evanw/esbuild/
複数モジュールの依存関係を解決し、1つにまとめるバンドラーは、現代のフロントエンド開発においてなくてはならないツールの1つ。
The State of JavaScript
上位5つに人気が集中し、なかでもWebpackのシェアは実に約60%に達しています。
今回ご紹介する「esbuild」は、Go言語で書かれた高速なバンドラーで、これらメジャーなツールとの性能比較(ベンチマークテスト)をやってみました。
計測方法は、three.jsライブラリを10回複製し、キャッシュなしで単一のバンドルをゼロから構築しています。なんと、Webpackに比べて70倍以上もビルド時間が圧縮されるなど、クレイジーな速度を誇っています。
・Go言語で書かれている
・パース、プリンティング、ソースマップの処理が完全に並列化されている
・すべての処理が、非常に少ないパスで実行され、コストのかかるデータ変換が不要
・コードは速度を重視し、不必要なアロケーションを回避している
$ git clone https://github.com/evanw/esbuild.git
$ cd esbuild
$ make bench-three
esbuildのブランチにある計測スクリプトを実行します。
Built in 49s
real 49.95
user 54.59
sys 3.99
Built in 2m 56s 602ms
real 184.63
user 229.76
sys 15.46
Built in 142.49s
real 154.52
user 305.49
sys 29.69
Built in 56.95ms
real 58.75
user 67.11
sys 4.45
Built in 770ms
real 1.28
user 2.49
sys 0.70
ビルド時間を見れば、結果は一目瞭然です。
すでにバンドラーのまわりにはエコシステムが確立され、単純な速度比較だけでは技術が選ばれる理由にはならないでしょう。それでも、かなりショッキングな性能差であるのは事実であり、それとともに、Go言語の可能性を感じさせてくれる結果ではないでしょうか。
ITmedia / 2時間前
ITmedia / 3時間前
TechCrunch Japan / 11時間前
DevelopersIO / 11時間前
ITmedia / 12時間前
ITmedia / 12時間前
TechCrunch Japan / 12時間前
ITmedia / 13時間前
CNET Japan / 13時間前
ITmedia / 13時間前
TechCrunch Japan / 14時間前
ITmedia / 14時間前
TechCrunch Japan / 14時間前
CNET Japan / 14時間前
CNET Japan / 14時間前
DevelopersIO / 15時間前
TechCrunch Japan / 15時間前
CNET Japan / 15時間前
ITmedia / 15時間前
ITmedia / 15時間前