コンテンツにスキップ

ベンチマーク

更新データ: これらのベンチマークは2026年3月にGin v1.12.0とGo 1.25.8を使用して収集されました。最新のベンチマーク結果については、go-http-routing-benchmarkリポジトリをご覧ください。

Ginベンチマークレポート

テスト環境:

  • ホストプラットフォーム: Apple M4 Pro
  • マシンスペック: macOS (Darwin 25.3.0), arm64
  • テスト日: 2026年3月15日
  • Ginバージョン: v1.12.0
  • Goバージョン: 1.25.8 (darwin/arm64)
  • ベンチマークソース: Go HTTP Router Benchmark

概要

以下の表は、GitHub APIスループット(203ルート、全メソッド)で全ルーターをランク付けしたもので、実際のルーティングワークロードを最もよく表しています。ns/opが低いほど優れています。

RankRouterns/opB/opallocs/opZero-alloc
1Gin9,94400
2BunRouter10,28100
3Echo11,07200
4HttpRouter15,05913,792167
5HttpTreeMux49,30265,856671
6Chi94,376130,817740
7Beego101,94171,456609
8Fiber109,14800
9Macaron121,785147,7841,624
10Goji v2242,849313,7443,712
11GoRestful885,6781,006,7443,009
12GorillaMux1,316,844225,6671,588

主なポイント:

  • Gin、BunRouter、Echoがトップティアを形成しており、すべてヒープアロケーションゼロを達成し、GitHub API全体を約10マイクロ秒でルーティングします。
  • HttpRouterは非常に高速ですが、パラメータ付きルートごとに1回のアロケーションが発生します(203ルートで167回のアロケーション)。
  • Fiberもゼロアロケーションを達成していますが、fasthttpベースのベンチマークインフラストラクチャがイテレーションごとのリセットオーバーヘッドを追加するため、net/httpルーターとの直接比較には注意が必要です。
  • GorillaMuxGoRestfulは機能豊富ですが、桁違いに遅いため、レイテンシに敏感なアプリケーションには適していません。

Fiberに関する注意: Fiberのベンチマークはfasthttp.RequestCtxを使用し、イテレーションごとにResetを行います。これにより、net/httpベンチマークには存在しない一定のオーバーヘッドが追加されます。Fiber同士の比較は有効ですが、フレームワーク間の比較は慎重に解釈する必要があります。


メモリ消費量

ルーティング構造の読み込みに必要なメモリ(低いほど優れています)。バイト数の昇順でソートしています。

静的ルート:157

RouterBytes
HttpRouter21,680
Gin34,408
Macaron36,976
BunRouter51,232
Fiber59,248
HttpServeMux71,728
HttpTreeMux73,448
Chi83,160
Echo91,976
Beego98,824
Goji v2117,952
GorillaMux599,496
GoRestful819,704

GitHub APIルート:203

RouterBytes
HttpRouter37,072
Gin58,840
HttpTreeMux78,800
Macaron90,632
BunRouter93,776
Chi94,888
Echo117,784
Goji v2118,640
Beego150,840
Fiber163,832
GoRestful1,270,848
GorillaMux1,319,696

Google+ APIルート:13

RouterBytes
HttpRouter2,776
Gin4,576
BunRouter7,360
HttpTreeMux7,440
Chi8,008
Goji v28,096
Macaron8,672
Beego10,256
Fiber10,840
Echo10,968
GorillaMux68,000
GoRestful72,536

Parse APIルート:26

RouterBytes
HttpRouter5,024
Gin7,896
HttpTreeMux7,848
BunRouter9,336
Chi9,656
Echo13,816
Macaron13,704
Fiber15,352
Goji v216,064
Beego19,256
GorillaMux105,384
GoRestful121,200

ベンチマーク結果

GitHub API(203ルート)

操作ごとに203のGitHub APIエンドポイントすべてをルーティング。

RankRouterns/opB/opallocs/op
1Gin9,94400
2BunRouter10,28100
3Echo11,07200
4HttpRouter15,05913,792167
5HttpTreeMux49,30265,856671
6Chi94,376130,817740
7Beego101,94171,456609
8Fiber109,14800
9Macaron121,785147,7841,624
10Goji v2242,849313,7443,712
11GoRestful885,6781,006,7443,009
12GorillaMux1,316,844225,6671,588

Google+ API(13ルート)

操作ごとに13のGoogle+ APIエンドポイントすべてをルーティング。

RankRouterns/opB/opallocs/op
1BunRouter348.500
2Gin429.700
3Echo451.100
4HttpRouter668.664011
5HttpTreeMux2,4284,03238
6Fiber2,50600
7Chi5,3338,48048
8Beego5,9274,57639
9Macaron7,2949,464104
10Goji v28,00015,120115
11GorillaMux14,70714,448102
12GoRestful24,18960,720193

Parse API(26ルート)

操作ごとに26のParse APIエンドポイントすべてをルーティング。

RankRouterns/opB/opallocs/op
1BunRouter588.200
2Gin712.100
3Echo742.100
4HttpRouter948.564016
5HttpTreeMux3,3725,72851
6Fiber4,25000
7Chi8,86314,94484
8Beego10,5419,15278
9Macaron13,63518,928208
10Goji v213,26429,456199
11GorillaMux25,88626,960198
12GoRestful54,780131,728380

静的ルート(157ルート)

操作ごとに157の静的ルートすべてをルーティング。ベースラインとしてhttp.ServeMuxを含みます。

RankRouterns/opB/opallocs/op
1HttpRouter4,17700
2HttpTreeMux5,36300
3Gin5,52800
4BunRouter5,99700
5Echo6,89700
HttpServeMux18,17200
6Fiber29,31000
7Chi41,31757,776314
8Beego68,25555,264471
9Macaron81,824114,2961,256
10Goji v284,459175,8401,099
11GorillaMux302,825133,1371,099
12GoRestful436,510677,8242,193

マイクロベンチマーク

単一パラメータ

ルート:/user/:name — リクエスト:GET /user/gordon

RankRouterns/opB/opallocs/op
1BunRouter12.2200
2Echo17.7500
3Gin23.3100
4HttpRouter31.88321
5Fiber114.400
6HttpTreeMux165.03523
7Chi332.27044
8Beego348.83523
9Goji v2494.31,1368
10GorillaMux630.61,1528
11Macaron708.01,06410
12GoRestful1,3944,60015

5パラメータ

ルート:/:a/:b/:c/:d/:e — リクエスト:GET /test/test/test/test/test

RankRouterns/opB/opallocs/op
1BunRouter41.8600
2Echo43.7600
3Gin44.2000
4HttpRouter83.741601
5Fiber271.600
6HttpTreeMux358.85766
7Chi453.77044
8Beego480.33523
9Goji v2532.41,2008
10Macaron799.71,06410
11GorillaMux972.61,2168
12GoRestful1,5794,71215

20パラメータ

ルート:/:a/:b/.../:t(20セグメント) — リクエスト:GET /a/b/.../t

RankRouterns/opB/opallocs/op
1Gin121.700
2Echo127.500
3BunRouter211.400
4HttpRouter290.27041
5Fiber466.100
6Goji v2745.31,4408
7Beego1,0993523
8Chi1,8052,5049
9HttpTreeMux1,8573,14413
10Macaron2,0582,86415
11GorillaMux2,2233,27213
12GoRestful3,3377,00820

パラメータ書き込み

ルート:/user/:name(レスポンス書き込みあり) — リクエスト:GET /user/gordon

RankRouterns/opB/opallocs/op
1BunRouter25.8600
2Gin27.6500
3HttpRouter37.40321
4Echo47.9481
5Fiber125.700
6HttpTreeMux180.43523
7Chi348.37044
8Beego386.13604
9Goji v2516.91,16810
10GorillaMux665.51,1528
11Macaron784.31,11213
12GoRestful1,5344,60816