اختبارات الأداء
بيانات محدّثة: تم جمع اختبارات الأداء هذه في مارس 2026 باستخدام Gin v1.12.0 و Go 1.25.8. للحصول على أحدث نتائج اختبارات الأداء، راجع مستودع go-http-routing-benchmark.
تقرير اختبارات أداء Gin
Section titled “تقرير اختبارات أداء Gin”بيئة الاختبار:
- منصة الاستضافة: 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
الملخص
Section titled “الملخص”يصنّف الجدول أدناه جميع الموجّهات حسب إنتاجية 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 صحيحة؛ أما المقارنات بين الأطر المختلفة فيجب تفسيرها بحذر.
استهلاك الذاكرة
Section titled “استهلاك الذاكرة”الذاكرة المطلوبة لتحميل هيكل التوجيه (الأقل أفضل). مرتّبة تصاعديًا حسب البايتات.
المسارات الثابتة: 157
Section titled “المسارات الثابتة: 157”| 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 |
مسارات GitHub API: 203
Section titled “مسارات GitHub API: 203”| 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 |
مسارات Google+ API: 13
Section titled “مسارات Google+ API: 13”| 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 |
مسارات Parse API: 26
Section titled “مسارات Parse API: 26”| 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 |
نتائج اختبارات الأداء
Section titled “نتائج اختبارات الأداء”GitHub API (203 مسارات)
Section titled “GitHub API (203 مسارات)”توجيه جميع نقاط نهاية 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 مسارًا)
Section titled “Google+ API (13 مسارًا)”توجيه جميع نقاط نهاية 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 مسارًا)
Section titled “Parse API (26 مسارًا)”توجيه جميع نقاط نهاية 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 |
الاختبارات المصغّرة
Section titled “الاختبارات المصغّرة”معامل واحد
Section titled “معامل واحد”المسار: /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 |
5 معاملات
Section titled “5 معاملات”المسار: /: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 |
20 معاملًا
Section titled “20 معاملًا”المسار: /: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 |
كتابة المعامل
Section titled “كتابة المعامل”المسار: /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 |