Skip to content

Commit 0c47f5a

Browse files
author
dtmkeng
committed
add new framework Aero
1 parent 4a5e58f commit 0c47f5a

9 files changed

+189
-3
lines changed

bench_test.go

+24
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ func BenchmarkAce_Param(b *testing.B) {
110110
r, _ := http.NewRequest("GET", "/user/gordon", nil)
111111
benchRequest(b, router, r)
112112
}
113+
func BenchmarkAero_Param(b *testing.B) {
114+
router := loadAeroSingle("GET", "/user/:name", aeroHandler)
115+
116+
r, _ := http.NewRequest("GET", "/user/gordon", nil)
117+
benchRequest(b, router, r)
118+
}
113119
func BenchmarkBear_Param(b *testing.B) {
114120
router := loadBearSingle("GET", "/user/{name}", bearHandler)
115121

@@ -314,6 +320,12 @@ func BenchmarkAce_Param5(b *testing.B) {
314320
r, _ := http.NewRequest("GET", fiveRoute, nil)
315321
benchRequest(b, router, r)
316322
}
323+
func BenchmarkAero_Param5(b *testing.B) {
324+
router := loadAeroSingle("GET", fiveColon, aeroHandler)
325+
326+
r, _ := http.NewRequest("GET", fiveRoute, nil)
327+
benchRequest(b, router, r)
328+
}
317329
func BenchmarkBear_Param5(b *testing.B) {
318330
router := loadBearSingle("GET", fiveBrace, bearHandler)
319331

@@ -518,6 +530,12 @@ func BenchmarkAce_Param20(b *testing.B) {
518530
r, _ := http.NewRequest("GET", twentyRoute, nil)
519531
benchRequest(b, router, r)
520532
}
533+
func BenchmarkAero_Param20(b *testing.B) {
534+
router := loadAeroSingle("GET", twentyBrace, aeroHandler)
535+
536+
r, _ := http.NewRequest("GET", twentyRoute, nil)
537+
benchRequest(b, router, r)
538+
}
521539
func BenchmarkBear_Param20(b *testing.B) {
522540
router := loadBearSingle("GET", twentyBrace, bearHandler)
523541

@@ -718,6 +736,12 @@ func BenchmarkAce_ParamWrite(b *testing.B) {
718736
r, _ := http.NewRequest("GET", "/user/gordon", nil)
719737
benchRequest(b, router, r)
720738
}
739+
func BenchmarkAero_ParamWrite(b *testing.B) {
740+
router := loadAeroSingle("GET", "/user/:name", aeroHandlerTest)
741+
742+
r, _ := http.NewRequest("GET", "/user/gordon", nil)
743+
benchRequest(b, router, r)
744+
}
721745
func BenchmarkBear_ParamWrite(b *testing.B) {
722746
router := loadBearSingle("GET", "/user/{name}", bearHandlerWrite)
723747

github_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ var githubAPI = []route{
275275

276276
var (
277277
githubAce http.Handler
278+
githubAero http.Handler
278279
githubBear http.Handler
279280
githubBeego http.Handler
280281
githubBone http.Handler
@@ -314,6 +315,9 @@ func init() {
314315
calcMem("Ace", func() {
315316
githubAce = loadAce(githubAPI)
316317
})
318+
calcMem("Aero", func() {
319+
githubAero = loadAero(githubAPI)
320+
})
317321
calcMem("Bear", func() {
318322
githubBear = loadBear(githubAPI)
319323
})
@@ -416,6 +420,10 @@ func BenchmarkAce_GithubStatic(b *testing.B) {
416420
req, _ := http.NewRequest("GET", "/user/repos", nil)
417421
benchRequest(b, githubAce, req)
418422
}
423+
func BenchmarkAero_GithubStatic(b *testing.B) {
424+
req, _ := http.NewRequest("GET", "/user/repos", nil)
425+
benchRequest(b, githubAero, req)
426+
}
419427
func BenchmarkBear_GithubStatic(b *testing.B) {
420428
req, _ := http.NewRequest("GET", "/user/repos", nil)
421429
benchRequest(b, githubBear, req)
@@ -548,6 +556,10 @@ func BenchmarkAce_GithubParam(b *testing.B) {
548556
req, _ := http.NewRequest("GET", "/repos/julienschmidt/httprouter/stargazers", nil)
549557
benchRequest(b, githubAce, req)
550558
}
559+
func BenchmarkAero_GithubParam(b *testing.B) {
560+
req, _ := http.NewRequest("GET", "/repos/julienschmidt/httprouter/stargazers", nil)
561+
benchRequest(b, githubAero, req)
562+
}
551563
func BenchmarkBear_GithubParam(b *testing.B) {
552564
req, _ := http.NewRequest("GET", "/repos/julienschmidt/httprouter/stargazers", nil)
553565
benchRequest(b, githubBear, req)
@@ -679,6 +691,9 @@ func BenchmarkVulcan_GithubParam(b *testing.B) {
679691
func BenchmarkAce_GithubAll(b *testing.B) {
680692
benchRoutes(b, githubAce, githubAPI)
681693
}
694+
func BenchmarkAero_GithubAll(b *testing.B) {
695+
benchRoutes(b, githubAero, githubAPI)
696+
}
682697
func BenchmarkBear_GithubAll(b *testing.B) {
683698
benchRoutes(b, githubBear, githubAPI)
684699
}

go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/julienschmidt/go-http-routing-benchmark
33
go 1.13
44

55
require (
6+
github.com/aerogo/aero v1.3.28
67
github.com/ant0ine/go-json-rest v3.3.2+incompatible
78
github.com/astaxie/beego v1.12.0
89
github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40
@@ -26,7 +27,6 @@ require (
2627
github.com/gowww/router v0.0.0-20180327195201-5f9c626ef619
2728
github.com/gravitational/trace v0.0.0-20190726142706-a535a178675f // indirect
2829
github.com/jonboulle/clockwork v0.1.0 // indirect
29-
github.com/json-iterator/go v1.1.7 // indirect
3030
github.com/julienschmidt/httprouter v1.3.0
3131
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
3232
github.com/labstack/echo v3.3.10+incompatible
@@ -61,7 +61,6 @@ require (
6161
goji.io v2.0.2+incompatible
6262
golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad // indirect
6363
golang.org/x/net v0.0.0-20190926025831-c00fd9afed17 // indirect
64-
golang.org/x/sys v0.0.0-20190927073244-c990c680b611 // indirect
6564
gopkg.in/fsnotify.v1 v1.4.7 // indirect
6665
gopkg.in/ini.v1 v1.48.0 // indirect
6766
gopkg.in/macaron.v1 v1.3.4

go.sum

+42
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,37 @@ gitea.com/lunny/log v0.0.0-20190322053110-01b5df579c4e h1:r1en/D7xJmcY24VkHkjkcJ
22
gitea.com/lunny/log v0.0.0-20190322053110-01b5df579c4e/go.mod h1:uJEsN4LQpeGYRCjuPXPZBClU7N5pWzGuyF4uqLpE/e0=
33
github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
44
github.com/OwnLocal/goes v1.0.0/go.mod h1:8rIFjBGTue3lCU0wplczcUgt9Gxgrkkrw7etMIcn8TM=
5+
github.com/aerogo/aero v1.3.28 h1:ZoDvLxG4xUnH3YQd8FjLIQpi43ALOWq+DbBRwyvpS/c=
6+
github.com/aerogo/aero v1.3.28/go.mod h1:WZq4j2dr9BbbyqBxhV8kOGpnyMI+1bkDKhFrvmlSn7c=
7+
github.com/aerogo/csp v0.1.9 h1:7K8FujZkE62Wes0lXt9sTG0kf/pn3G3XkDwhmrTlnpY=
8+
github.com/aerogo/csp v0.1.9/go.mod h1:xB+51XmDvkdRYsOCwVoG/D+aJGEJfi6KxqM3/zf2jZw=
9+
github.com/aerogo/http v1.0.9/go.mod h1:qVlq+QszT9mFVL92hmMs71fqzA1DILTjNSucEWUdFmk=
10+
github.com/aerogo/http v1.0.10 h1:CIFhdka8DjJ/vF2oxQVi+1lNi7LZp5xSmkEjbEwhrdI=
11+
github.com/aerogo/http v1.0.10/go.mod h1:rG/KkSLgpcjuB9I8k+OWbQI9YbahHIridyva0AQdH70=
12+
github.com/aerogo/linter-performance v1.0.5 h1:2tNBov+S/zuJ7Z0t2Yif2AYTfviNavJEGtfm1Sjyap4=
13+
github.com/aerogo/linter-performance v1.0.5/go.mod h1:Frqz5+t0UnhaLy+zqU8FSXBne5D9Tt06EZh1ug2HZyY=
14+
github.com/aerogo/session v0.1.7 h1:Natc9Pq9KIHDUBR/0YjdazckTdOWBItYmuDplGJJfFc=
15+
github.com/aerogo/session v0.1.7/go.mod h1:6/99zuiGm8wzIPFGDlzv3636eLqhWR9cf0rRn/3IRJs=
16+
github.com/aerogo/session-store-memory v0.1.6 h1:CZFuEkhL1NV4EFSwerPokuYHtYDXrePAipau/6xyM0Y=
17+
github.com/aerogo/session-store-memory v0.1.6/go.mod h1:k3ElPubm0b+V/DV+pgtCLSArro/jbdS7niJ8uTKkvAQ=
18+
github.com/akyoto/assert v0.1.3/go.mod h1:g5e6ag+ksCEQENq/LnmU9z04wCAIFDr8KacBusVL0H8=
19+
github.com/akyoto/assert v0.2.0/go.mod h1:g5e6ag+ksCEQENq/LnmU9z04wCAIFDr8KacBusVL0H8=
20+
github.com/akyoto/assert v0.2.1/go.mod h1:g5e6ag+ksCEQENq/LnmU9z04wCAIFDr8KacBusVL0H8=
21+
github.com/akyoto/color v1.8.7/go.mod h1:eNfGr527GIJME/houfnrEIGiVlL5IJsOfuC2I+oby+4=
22+
github.com/akyoto/color v1.8.9 h1:Uv8/rFdvq06ntG+GibKjbT+jWtc6o88SjKMUmi1Nom8=
23+
github.com/akyoto/color v1.8.9/go.mod h1:ImvfyQaQbqtKLwiafRiRu6Fq98f4f9HBI/J0WK7q3Oc=
24+
github.com/akyoto/colorable v0.1.4 h1:BPwbsaUmo90/JiwTB7v7TpRHkNsfIxsb9s25eASwwDg=
25+
github.com/akyoto/colorable v0.1.4/go.mod h1:AUfZwbC9OzwBaIbVTyNpD2UmwPbh3ZQqpyrHzb2ZymY=
26+
github.com/akyoto/hash v0.4.7 h1:z5yF4PPuzUqmSHVK6poV3UVFw+zR+/8IGDAy+zsR+U8=
27+
github.com/akyoto/hash v0.4.7/go.mod h1:BSMAz3ncYc7mbb8VZlAo2nLIYPVB9QQ2SDsev7NJFmg=
28+
github.com/akyoto/stringutils v0.2.3/go.mod h1:nyO78pc92gciYObsOGWasnQN/s18JEQusXtN/7iC2AM=
29+
github.com/akyoto/stringutils v0.2.4 h1:VYW2FH2qjmQyJWZDSNFSP8btbSwJDoY0x14uiD/0OLU=
30+
github.com/akyoto/stringutils v0.2.4/go.mod h1:nyO78pc92gciYObsOGWasnQN/s18JEQusXtN/7iC2AM=
31+
github.com/akyoto/tty v0.1.0/go.mod h1:UMkevvI7yitoMBNoA9ALtJU0AL/6XGNkyuh9DqPvIOs=
32+
github.com/akyoto/tty v0.1.1 h1:ZOJpp9fj0Y0CNVl9j7MJ7sJvlf9yVlFyDTiahD8FbUo=
33+
github.com/akyoto/tty v0.1.1/go.mod h1:DLx0iz7IeaEsdXQkZ5IN/YOoWRvuV+JOSy6AQjyxA50=
34+
github.com/akyoto/uuid v1.1.3 h1:FEz14tNTfaUeY0Jrkz2F17rjKiks6hOALGcPmAmtn1s=
35+
github.com/akyoto/uuid v1.1.3/go.mod h1:8dgzDQyrpuApBGIQHOX7JkvCZHusXZ0tGlQcxxv4bYg=
536
github.com/ant0ine/go-json-rest v3.3.2+incompatible h1:nBixrkLFiDNAW0hauKDLc8yJI6XfrQumWvytE1Hk14E=
637
github.com/ant0ine/go-json-rest v3.3.2+incompatible/go.mod h1:q6aCt0GfU6LhpBsnZ/2U+mwe+0XB5WStbmwyoPfc+sk=
738
github.com/astaxie/beego v1.12.0 h1:MRhVoeeye5N+Flul5PoVfD9CslfdoH+xqC/xvSQ5u2Y=
@@ -96,6 +127,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGi
96127
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
97128
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
98129
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
130+
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
131+
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
132+
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
99133
github.com/labstack/echo v3.3.10+incompatible h1:pGRcYk231ExFAyoAjAfD85kQzRJCRI8bbnE7CX5OEgg=
100134
github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s=
101135
github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
@@ -201,6 +235,8 @@ github.com/vanng822/r2router v0.0.0-20150523112421-1023140a4f30/go.mod h1:1BVq8p
201235
github.com/vulcand/predicate v1.1.0 h1:Gq/uWopa4rx/tnZu2opOSBqHK63Yqlou/SzrbwdJiNg=
202236
github.com/vulcand/predicate v1.1.0/go.mod h1:mlccC5IRBoc2cIFmCB8ZM62I3VDb6p2GXESMHa3CnZg=
203237
github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
238+
github.com/zeebo/xxh3 v0.0.0-20190923153500-83a7230063d0 h1:tFBBYU7YRi28AS9Oj/uoHxsxkUUjj9rcTt/Lkzd/VHQ=
239+
github.com/zeebo/xxh3 v0.0.0-20190923153500-83a7230063d0/go.mod h1:e/zZObEJWtkq6f+bAzme0xQJSGI75oxoeqS+f2I7YVI=
204240
github.com/zenazn/goji v0.9.0 h1:RSQQAbXGArQ0dIDEq+PI6WqN6if+5KHu6x2Cx/GXLTQ=
205241
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
206242
goji.io v2.0.2+incompatible h1:uIssv/elbKRLznFUy3Xj4+2Mz/qKhek/9aZQDUMae7c=
@@ -228,8 +264,13 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
228264
golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
229265
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ=
230266
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
267+
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
268+
golang.org/x/sys v0.0.0-20190910064555-bbd175535a8b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
231269
golang.org/x/sys v0.0.0-20190927073244-c990c680b611 h1:q9u40nxWT5zRClI/uU9dHCiYGottAg6Nzz4YUQyHxdA=
232270
golang.org/x/sys v0.0.0-20190927073244-c990c680b611/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
271+
golang.org/x/sys v0.0.0-20191007154456-ef33b2fb2c41/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
272+
golang.org/x/sys v0.0.0-20191018095205-727590c5006e h1:ZtoklVMHQy6BFRHkbG6JzK+S6rX82//Yeok1vMlizfQ=
273+
golang.org/x/sys v0.0.0-20191018095205-727590c5006e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
233274
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
234275
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
235276
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@@ -238,6 +279,7 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3
238279
golang.org/x/tools v0.0.0-20190802220118-1d1727260058/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
239280
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
240281
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
282+
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
241283
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
242284
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
243285
gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=

gplus_test.go

+19
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var gplusAPI = []route{
3737

3838
var (
3939
gplusAce http.Handler
40+
gplusAero http.Handler
4041
gplusBear http.Handler
4142
gplusBeego http.Handler
4243
gplusBone http.Handler
@@ -76,6 +77,9 @@ func init() {
7677
calcMem("Ace", func() {
7778
gplusAce = loadAce(gplusAPI)
7879
})
80+
calcMem("Aero", func() {
81+
gplusAero = loadAero(gplusAPI)
82+
})
7983
calcMem("Bear", func() {
8084
gplusBear = loadBear(gplusAPI)
8185
})
@@ -178,6 +182,10 @@ func BenchmarkAce_GPlusStatic(b *testing.B) {
178182
req, _ := http.NewRequest("GET", "/people", nil)
179183
benchRequest(b, gplusAce, req)
180184
}
185+
func BenchmarkAero_GPlusStatic(b *testing.B) {
186+
req, _ := http.NewRequest("GET", "/people", nil)
187+
benchRequest(b, gplusAero, req)
188+
}
181189
func BenchmarkBear_GPlusStatic(b *testing.B) {
182190
req, _ := http.NewRequest("GET", "/people", nil)
183191
benchRequest(b, gplusBear, req)
@@ -310,6 +318,10 @@ func BenchmarkAce_GPlusParam(b *testing.B) {
310318
req, _ := http.NewRequest("GET", "/people/118051310819094153327", nil)
311319
benchRequest(b, gplusAce, req)
312320
}
321+
func BenchmarkAero_GPlusParam(b *testing.B) {
322+
req, _ := http.NewRequest("GET", "/people/118051310819094153327", nil)
323+
benchRequest(b, gplusAero, req)
324+
}
313325
func BenchmarkBear_GPlusParam(b *testing.B) {
314326
req, _ := http.NewRequest("GET", "/people/118051310819094153327", nil)
315327
benchRequest(b, gplusBear, req)
@@ -442,6 +454,10 @@ func BenchmarkAce_GPlus2Params(b *testing.B) {
442454
req, _ := http.NewRequest("GET", "/people/118051310819094153327/activities/123456789", nil)
443455
benchRequest(b, gplusAce, req)
444456
}
457+
func BenchmarkAero_GPlus2Params(b *testing.B) {
458+
req, _ := http.NewRequest("GET", "/people/118051310819094153327/activities/123456789", nil)
459+
benchRequest(b, gplusAero, req)
460+
}
445461
func BenchmarkBear_GPlus2Params(b *testing.B) {
446462
req, _ := http.NewRequest("GET", "/people/118051310819094153327/activities/123456789", nil)
447463
benchRequest(b, gplusBear, req)
@@ -573,6 +589,9 @@ func BenchmarkVulcan_GPlus2Params(b *testing.B) {
573589
func BenchmarkAce_GPlusAll(b *testing.B) {
574590
benchRoutes(b, gplusAce, gplusAPI)
575591
}
592+
func BenchmarkAero_GPlusAll(b *testing.B) {
593+
benchRoutes(b, gplusAero, gplusAPI)
594+
}
576595
func BenchmarkBear_GPlusAll(b *testing.B) {
577596
benchRoutes(b, gplusBear, gplusAPI)
578597
}

parse_test.go

+19
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ var parseAPI = []route{
5757

5858
var (
5959
parseAce http.Handler
60+
parseAero http.Handler
6061
parseBear http.Handler
6162
parseBeego http.Handler
6263
parseBone http.Handler
@@ -96,6 +97,9 @@ func init() {
9697
calcMem("Ace", func() {
9798
parseAce = loadAce(parseAPI)
9899
})
100+
calcMem("Aero", func() {
101+
parseAero = loadAero(parseAPI)
102+
})
99103
calcMem("Bear", func() {
100104
parseBear = loadBear(parseAPI)
101105
})
@@ -195,6 +199,10 @@ func BenchmarkAce_ParseStatic(b *testing.B) {
195199
req, _ := http.NewRequest("GET", "/1/users", nil)
196200
benchRequest(b, parseAce, req)
197201
}
202+
func BenchmarkAero_ParseStatic(b *testing.B) {
203+
req, _ := http.NewRequest("GET", "/1/users", nil)
204+
benchRequest(b, parseAero, req)
205+
}
198206
func BenchmarkBear_ParseStatic(b *testing.B) {
199207
req, _ := http.NewRequest("GET", "/1/users", nil)
200208
benchRequest(b, parseBear, req)
@@ -327,6 +335,10 @@ func BenchmarkAce_ParseParam(b *testing.B) {
327335
req, _ := http.NewRequest("GET", "/1/classes/go", nil)
328336
benchRequest(b, parseAce, req)
329337
}
338+
func BenchmarkAero_ParseParam(b *testing.B) {
339+
req, _ := http.NewRequest("GET", "/1/classes/go", nil)
340+
benchRequest(b, parseAero, req)
341+
}
330342
func BenchmarkBear_ParseParam(b *testing.B) {
331343
req, _ := http.NewRequest("GET", "/1/classes/go", nil)
332344
benchRequest(b, parseBear, req)
@@ -459,6 +471,10 @@ func BenchmarkAce_Parse2Params(b *testing.B) {
459471
req, _ := http.NewRequest("GET", "/1/classes/go/123456789", nil)
460472
benchRequest(b, parseAce, req)
461473
}
474+
func BenchmarkAero_Parse2Params(b *testing.B) {
475+
req, _ := http.NewRequest("GET", "/1/classes/go/123456789", nil)
476+
benchRequest(b, parseAero, req)
477+
}
462478
func BenchmarkBear_Parse2Params(b *testing.B) {
463479
req, _ := http.NewRequest("GET", "/1/classes/go/123456789", nil)
464480
benchRequest(b, parseBear, req)
@@ -590,6 +606,9 @@ func BenchmarkVulcan_Parse2Params(b *testing.B) {
590606
func BenchmarkAce_ParseAll(b *testing.B) {
591607
benchRoutes(b, parseAce, parseAPI)
592608
}
609+
func BenchmarkAero_ParseAll(b *testing.B) {
610+
benchRoutes(b, parseAero, parseAPI)
611+
}
593612
func BenchmarkBear_ParseAll(b *testing.B) {
594613
benchRoutes(b, parseBear, parseAPI)
595614
}

0 commit comments

Comments
 (0)