تخطَّ إلى المحتوى

اختبارات الأداء

بيانات محدّثة: تم جمع اختبارات الأداء هذه في مارس 2026 باستخدام Gin v1.12.0 و Go 1.25.8. للحصول على أحدث نتائج اختبارات الأداء، راجع مستودع go-http-routing-benchmark.

بيئة الاختبار:

  • منصة الاستضافة: Apple M4 Pro
  • مواصفات الجهاز: macOS (Darwin 25.3.0), arm64
  • تاريخ الاختبار: 15 مارس 2026
  • إصدار Gin: v1.12.0
  • إصدار Go: 1.25.8 (darwin/arm64)
  • مصدر اختبارات الأداء: Go HTTP Router Benchmark

يصنّف الجدول أدناه جميع الموجّهات حسب إنتاجية GitHub API (203 مسارات، جميع الطرق)، وهو ما يمثّل أفضل تمثيل لأحمال التوجيه في العالم الحقيقي. القيمة الأقل في ns/op أفضل.

Rank Router ns/op B/op allocs/op Zero-alloc
1 Gin 9,944 0 0
2 BunRouter 10,281 0 0
3 Echo 11,072 0 0
4 HttpRouter 15,059 13,792 167
5 HttpTreeMux 49,302 65,856 671
6 Chi 94,376 130,817 740
7 Beego 101,941 71,456 609
8 Fiber 109,148 0 0
9 Macaron 121,785 147,784 1,624
10 Goji v2 242,849 313,744 3,712
11 GoRestful 885,678 1,006,744 3,009
12 GorillaMux 1,316,844 225,667 1,588

النقاط الرئيسية:

  • يشكّل Gin و BunRouter و Echo المستوى الأعلى — جميعها تحقق صفر تخصيصات من الكومة وتوجّه GitHub API بالكامل في حوالي 10 ميكروثانية.
  • يظل HttpRouter سريعًا للغاية لكنه يستهلك تخصيصًا واحدًا لكل مسار يحتوي على معاملات (167 تخصيصًا لـ 203 مسارات).
  • يحقق Fiber أيضًا صفر تخصيصات، لكن بنية اختبار الأداء المبنية على fasthttp تضيف حملًا إضافيًا لإعادة التعيين في كل تكرار — يجب الحذر عند المقارنة المباشرة مع موجّهات net/http.
  • GorillaMux و GoRestful غنيان بالميزات لكنهما أبطأ بمراتب، مما يجعلهما أقل ملاءمة للتطبيقات الحساسة لزمن الاستجابة.

تنبيه بخصوص Fiber: تستخدم اختبارات أداء Fiber fasthttp.RequestCtx مع إعادة تعيين في كل تكرار، مما يضيف حملًا ثابتًا غير موجود في اختبارات net/http. المقارنات بين Fiber وFiber صحيحة؛ أما المقارنات بين الأطر المختلفة فيجب تفسيرها بحذر.


الذاكرة المطلوبة لتحميل هيكل التوجيه (الأقل أفضل). مرتّبة تصاعديًا حسب البايتات.

Router Bytes
HttpRouter 21,680
Gin 34,408
Macaron 36,976
BunRouter 51,232
Fiber 59,248
HttpServeMux 71,728
HttpTreeMux 73,448
Chi 83,160
Echo 91,976
Beego 98,824
Goji v2 117,952
GorillaMux 599,496
GoRestful 819,704
Router Bytes
HttpRouter 37,072
Gin 58,840
HttpTreeMux 78,800
Macaron 90,632
BunRouter 93,776
Chi 94,888
Echo 117,784
Goji v2 118,640
Beego 150,840
Fiber 163,832
GoRestful 1,270,848
GorillaMux 1,319,696
Router Bytes
HttpRouter 2,776
Gin 4,576
BunRouter 7,360
HttpTreeMux 7,440
Chi 8,008
Goji v2 8,096
Macaron 8,672
Beego 10,256
Fiber 10,840
Echo 10,968
GorillaMux 68,000
GoRestful 72,536
Router Bytes
HttpRouter 5,024
Gin 7,896
HttpTreeMux 7,848
BunRouter 9,336
Chi 9,656
Echo 13,816
Macaron 13,704
Fiber 15,352
Goji v2 16,064
Beego 19,256
GorillaMux 105,384
GoRestful 121,200

توجيه جميع نقاط نهاية GitHub API البالغ عددها 203 لكل عملية.

Rank Router ns/op B/op allocs/op
1 Gin 9,944 0 0
2 BunRouter 10,281 0 0
3 Echo 11,072 0 0
4 HttpRouter 15,059 13,792 167
5 HttpTreeMux 49,302 65,856 671
6 Chi 94,376 130,817 740
7 Beego 101,941 71,456 609
8 Fiber 109,148 0 0
9 Macaron 121,785 147,784 1,624
10 Goji v2 242,849 313,744 3,712
11 GoRestful 885,678 1,006,744 3,009
12 GorillaMux 1,316,844 225,667 1,588

توجيه جميع نقاط نهاية Google+ API البالغ عددها 13 لكل عملية.

Rank Router ns/op B/op allocs/op
1 BunRouter 348.5 0 0
2 Gin 429.7 0 0
3 Echo 451.1 0 0
4 HttpRouter 668.6 640 11
5 HttpTreeMux 2,428 4,032 38
6 Fiber 2,506 0 0
7 Chi 5,333 8,480 48
8 Beego 5,927 4,576 39
9 Macaron 7,294 9,464 104
10 Goji v2 8,000 15,120 115
11 GorillaMux 14,707 14,448 102
12 GoRestful 24,189 60,720 193

توجيه جميع نقاط نهاية Parse API البالغ عددها 26 لكل عملية.

Rank Router ns/op B/op allocs/op
1 BunRouter 588.2 0 0
2 Gin 712.1 0 0
3 Echo 742.1 0 0
4 HttpRouter 948.5 640 16
5 HttpTreeMux 3,372 5,728 51
6 Fiber 4,250 0 0
7 Chi 8,863 14,944 84
8 Beego 10,541 9,152 78
9 Macaron 13,635 18,928 208
10 Goji v2 13,264 29,456 199
11 GorillaMux 25,886 26,960 198
12 GoRestful 54,780 131,728 380

المسارات الثابتة (157 مسارًا)

Section titled “المسارات الثابتة (157 مسارًا)”

توجيه جميع المسارات الثابتة البالغ عددها 157 لكل عملية. يتضمن http.ServeMux كخط أساس.

Rank Router ns/op B/op allocs/op
1 HttpRouter 4,177 0 0
2 HttpTreeMux 5,363 0 0
3 Gin 5,528 0 0
4 BunRouter 5,997 0 0
5 Echo 6,897 0 0
HttpServeMux 18,172 0 0
6 Fiber 29,310 0 0
7 Chi 41,317 57,776 314
8 Beego 68,255 55,264 471
9 Macaron 81,824 114,296 1,256
10 Goji v2 84,459 175,840 1,099
11 GorillaMux 302,825 133,137 1,099
12 GoRestful 436,510 677,824 2,193

المسار: /user/:name — الطلب: GET /user/gordon

Rank Router ns/op B/op allocs/op
1 BunRouter 12.22 0 0
2 Echo 17.75 0 0
3 Gin 23.31 0 0
4 HttpRouter 31.88 32 1
5 Fiber 114.4 0 0
6 HttpTreeMux 165.0 352 3
7 Chi 332.2 704 4
8 Beego 348.8 352 3
9 Goji v2 494.3 1,136 8
10 GorillaMux 630.6 1,152 8
11 Macaron 708.0 1,064 10
12 GoRestful 1,394 4,600 15

المسار: /:a/:b/:c/:d/:e — الطلب: GET /test/test/test/test/test

Rank Router ns/op B/op allocs/op
1 BunRouter 41.86 0 0
2 Echo 43.76 0 0
3 Gin 44.20 0 0
4 HttpRouter 83.74 160 1
5 Fiber 271.6 0 0
6 HttpTreeMux 358.8 576 6
7 Chi 453.7 704 4
8 Beego 480.3 352 3
9 Goji v2 532.4 1,200 8
10 Macaron 799.7 1,064 10
11 GorillaMux 972.6 1,216 8
12 GoRestful 1,579 4,712 15

المسار: /:a/:b/.../:t (20 جزءًا) — الطلب: GET /a/b/.../t

Rank Router ns/op B/op allocs/op
1 Gin 121.7 0 0
2 Echo 127.5 0 0
3 BunRouter 211.4 0 0
4 HttpRouter 290.2 704 1
5 Fiber 466.1 0 0
6 Goji v2 745.3 1,440 8
7 Beego 1,099 352 3
8 Chi 1,805 2,504 9
9 HttpTreeMux 1,857 3,144 13
10 Macaron 2,058 2,864 15
11 GorillaMux 2,223 3,272 13
12 GoRestful 3,337 7,008 20

المسار: /user/:name مع كتابة الاستجابة — الطلب: GET /user/gordon

Rank Router ns/op B/op allocs/op
1 BunRouter 25.86 0 0
2 Gin 27.65 0 0
3 HttpRouter 37.40 32 1
4 Echo 47.94 8 1
5 Fiber 125.7 0 0
6 HttpTreeMux 180.4 352 3
7 Chi 348.3 704 4
8 Beego 386.1 360 4
9 Goji v2 516.9 1,168 10
10 GorillaMux 665.5 1,152 8
11 Macaron 784.3 1,112 13
12 GoRestful 1,534 4,608 16