diff --git a/README.md b/README.md index 7625617..fa7ea8a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # go-web-framework-benchmark This benchmark suite aims to compare the performance of Go web frameworks. It is inspired by [Go HTTP Router Benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) but this benchmark suite is different with that. Go HTTP Router Benchmark suit aims to compare the performance of **routers** but this Benchmark suit aims to compare whole HTTP request processing. -**Last Test Updated:** 2016-07-19 +**Last Test Updated:** 2016-07-20 *test environment* * CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz, 24 cores diff --git a/test-pipelining.sh b/test-pipelining.sh index 29d023c..cf1f3b5 100755 --- a/test-pipelining.sh +++ b/test-pipelining.sh @@ -67,4 +67,5 @@ echo "1000,"$(IFS=$','; echo "${test_result[*]}" ) >> concurrency-pipeline.csv test_all 30 5000 echo "5000,"$(IFS=$','; echo "${test_result[*]}" ) >> concurrency-pipeline.csv -mv -f processtime-pipeline.csv ./ \ No newline at end of file +mv -f processtime-pipeline.csv ./ +mv -f concurrency-pipeline.csv ./ diff --git a/testresults/concurrency-pipeline.csv b/testresults/concurrency-pipeline.csv index 4a17d54..6018219 100644 --- a/testresults/concurrency-pipeline.csv +++ b/testresults/concurrency-pipeline.csv @@ -1,2 +1,4 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -100,174379.60,175220.57,224906.50,175877.88,2758050.23,177182.09,45656.19,12849.88,25763.88,3230048.00,2741793.49,1650075.09,2536511.96,186687.54,213438.02,175402.71,168933.41,134732.20,185309.77,171670.62,3152.69,175895.34,175493.17,1767642.50,163566.56,172775.57,130624.78,153134.59,181594.82,171271.22,168587.35,162814.54,221872.26,125527.02,155236.19,187064.20 +100,174237.31,173261.67,224907.15,175798.75,2770184.59,176570.96,45480.11,12849.48,25261.80,3244684.09,2752236.78,1657994.92,2532311.63,186281.34,213827.23,174235.67,170279.11,134024.34,184795.35,170745.92,3158.67,175894.07,176279.82,1599748.84,163946.13,171183.41,129734.86,149300.98,181656.49,169631.50,169565.47,162175.13,222374.02,126436.11,155613.56,187359.61 +1000,277527.28,273541.19,324136.56,280930.36,2727148.16,279930.03,50082.40,12529.25,24349.59,3189283.41,2726955.48,1715234.02,2521715.26,304181.73,312607.22,276014.62,270490.81,226455.11,261423.21,267826.45,20497.72,280922.18,282055.56,1616073.14,273486.16,277399.82,220441.89,210251.74,269504.72,271419.87,265227.91,261564.45,309832.95,220445.76,267511.97,279650.56 +5000,294284.02,293877.28,353095.03,300882.94,2628674.39,300283.65,51355.75,11908.79,23298.28,3122593.08,2704910.68,1838924.50,2468898.07,325233.41,346377.37,298634.50,291291.58,245731.90,275894.43,287083.18,20791.37,300040.92,302460.05,1678782.39,297236.09,298001.49,236303.70,222676.83,287440.92,293263.86,284877.76,280937.46,341419.74,234618.21,288655.99,299604.48 diff --git a/testresults/concurrency.csv b/testresults/concurrency.csv index ad350a5..64617b9 100644 --- a/testresults/concurrency.csv +++ b/testresults/concurrency.csv @@ -1,4 +1,4 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -100,3175.06,3174.57,3174.53,3174.89,3178.06,3175.19,3175.08,3173.57,3178.04,3178.22,3177.62,3177.77,3178.03,3174.76,3175.31,3174.73,3174.87,3172.49,3171.97,3173.22,3158.41,3174.40,3175.15,3178.36,3175.46,3174.79,3171.89,3171.71,3173.46,3174.76,3168.67,3175.33,3174.74,3175.32,3172.85,3175.21 -1000,30590.54,30630.63,30402.05,30311.27,31161.34,30071.81,30939.51,30473.44,31150.68,31293.54,31421.43,31011.45,31156.26,30849.67,30581.05,31223.44,30279.36,31039.29,30143.56,30236.04,24300.63,30489.80,31354.04,30920.27,30946.36,30718.67,31085.86,30516.80,30567.97,30180.14,27644.13,30516.79,30293.39,31090.71,30528.64,31162.14 -5000,109651.46,124447.33,112912.88,112768.49,118255.88,118315.04,116400.54,112918.12,118024.78,112930.20,117497.72,128213.07,121366.97,117432.22,121180.39,116334.18,110503.42,116701.52,106459.93,57013.82,25678.37,124355.23,118479.22,119128.37,126195.47,116590.92,105766.81,119087.95,104107.70,116744.97,29441.17,105503.80,120898.28,111424.99,110585.89,109632.35 +100,3175.00,3175.36,3173.55,3174.83,3177.95,3174.92,3175.05,3174.18,3177.89,3178.34,3178.41,3177.85,3177.02,3174.93,3175.35,3175.62,3174.73,3173.16,3171.93,3173.72,3159.01,3174.88,3174.64,3178.78,3175.13,3174.57,3172.07,3171.61,3173.99,3174.92,3166.96,3174.77,3174.78,3174.46,3173.75,3175.33 +1000,30638.99,30316.11,30848.51,30932.42,31429.62,30838.21,31125.57,30497.00,31044.57,31288.78,31656.86,31313.03,31161.68,31018.30,30550.33,31019.81,30797.51,30678.16,30263.87,30588.69,24518.34,30790.06,30749.05,31443.87,31102.41,31380.39,30318.22,29801.74,31050.06,30932.83,28415.80,31093.83,30832.53,31125.06,29455.98,31083.76 +5000,110721.20,103563.56,108274.83,120098.24,115782.66,127890.41,108884.30,122788.77,133389.33,120064.61,117562.24,102897.72,119851.24,110502.95,120290.61,114174.62,114044.09,108585.25,103528.40,56682.78,25451.29,111538.65,106461.63,112264.14,106860.12,113110.76,112689.69,117786.45,106244.15,136455.09,29656.19,123580.23,112897.22,110419.32,109354.05,133290.88 diff --git a/testresults/concurrency_alloc.csv b/testresults/concurrency_alloc.csv index 8fca595..231dfaa 100644 --- a/testresults/concurrency_alloc.csv +++ b/testresults/concurrency_alloc.csv @@ -1,4 +1,4 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -100,2,2,2,2,2,3,3,3,3,3,2,1,3,2,2,4,3,2,2,3,3,2,3,2,3,2,3,3,3,3,3,3,3,3,3,3 -1000,17,18,23,20,5,20,22,25,5,5,4,6,4,21,15,15,23,20,16,16,17,14,20,4,16,13,20,20,14,21,15,20,20,22,17,23 -5000,82,101,120,82,14,107,86,102,19,19,24,21,17,99,113,93,76,112,95,77,75,90,69,19,99,75,77,122,87,84,59,77,85,80,100,83 +100,2,3,3,2,1,2,3,2,2,2,1,2,3,3,3,3,3,3,3,3,2,2,3,2,2,2,3,4,3,2,3,2,2,3,3,3 +1000,17,17,27,16,4,15,20,18,5,5,5,6,4,17,16,23,22,23,17,19,17,17,16,6,22,20,17,26,23,19,22,23,18,15,19,20 +5000,100,86,101,70,21,110,68,99,21,19,14,20,22,67,90,75,70,102,86,79,77,72,79,22,96,106,95,106,100,101,,84,91,97,87,93 diff --git a/testresults/concurrency_latency.csv b/testresults/concurrency_latency.csv index 5ef339e..847c8fd 100644 --- a/testresults/concurrency_latency.csv +++ b/testresults/concurrency_latency.csv @@ -1,4 +1,4 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -100,30.22,30.21,30.22,30.21,30.18,30.21,30.21,30.23,30.19,30.18,30.19,30.18,30.19,30.21,30.21,30.21,30.22,30.23,30.24,30.22,30.40,30.21,30.21,30.18,30.21,30.21,30.23,30.25,30.22,30.21,30.28,30.21,30.22,30.21,30.23,30.22 -1000,30.36,30.37,30.43,30.36,30.30,30.35,30.35,30.49,30.27,30.26,30.30,30.29,30.27,30.33,30.42,30.31,30.44,30.41,30.56,30.74,40.32,30.38,30.32,30.29,30.36,30.35,30.45,30.52,30.47,30.35,34.38,30.40,30.56,30.34,30.77,30.32 -5000,31.60,32.00,31.53,32.42,31.55,31.77,31.88,31.91,31.83,31.43,31.15,31.13,31.17,32.25,32.10,33.28,32.57,33.64,33.35,58.49,143.85,31.99,31.81,31.33,31.65,31.79,33.14,34.67,32.36,32.06,140.99,31.79,31.80,31.60,33.91,31.72 +100,30.21,30.21,30.22,30.21,30.19,30.21,30.21,30.22,30.19,30.18,30.18,30.19,30.19,30.21,30.21,30.21,30.21,30.22,30.24,30.22,30.38,30.21,30.21,30.18,30.21,30.21,30.23,30.24,30.22,30.21,30.30,30.21,30.22,30.22,30.22,30.21 +1000,30.36,30.38,30.40,30.31,30.32,30.36,30.33,30.48,30.29,30.29,30.29,30.26,30.29,30.31,30.40,30.32,30.41,30.46,30.60,30.68,42.99,30.35,30.35,30.28,30.35,30.38,30.45,30.51,30.44,30.34,35.07,30.36,30.53,30.37,30.60,30.33 +5000,32.23,31.66,31.69,31.81,31.35,31.90,31.58,32.30,31.28,31.15,31.21,30.78,31.55,31.64,32.32,32.91,32.05,33.90,32.62,69.81,156.72,31.64,31.58,31.09,31.66,31.52,33.13,34.14,32.50,31.82,134.91,32.14,31.98,31.53,33.35,32.00 diff --git a/testresults/processtime.csv b/testresults/processtime.csv index 6ad8ee0..f892ad7 100644 --- a/testresults/processtime.csv +++ b/testresults/processtime.csv @@ -1,5 +1,5 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -0 ms,291205.04,292793.56,276821.66,300459.87,429581.90,297933.39,297442.80,241948.49,429551.98,387730.11,469415.35,479222.38,418155.79,287594.98,275904.25,288460.60,280842.91,222840.84,174531.12,59782.95,29598.85,294530.04,298921.31,478739.36,289692.24,290624.09,224371.95,214089.09,207652.97,296318.86,34950.45,285832.39,282955.72,294721.92,223728.65,283934.76 -10 ms,210108.33,208264.86,196194.21,210882.41,235428.99,212849.88,207463.56,181512.66,238621.81,247940.15,248695.23,252816.89,246386.74,210308.36,202772.32,200421.50,205015.18,175408.93,152152.91,58625.64,25855.81,208248.49,211945.22,253862.24,210484.29,209441.37,170560.58,153498.97,176907.82,208122.77,29652.05,198312.51,201753.64,211494.78,168125.17,204431.17 -100 ms,39836.21,36810.35,35926.13,37077.79,38022.92,38573.48,42390.32,36939.41,38766.00,36767.34,40390.59,33832.29,40619.12,35207.63,36343.50,34396.30,37363.95,38879.84,37504.00,35418.41,24266.47,39389.36,37794.69,37931.73,36924.39,39989.23,38854.95,34527.97,38870.87,35127.97,26494.47,39412.43,37499.87,38623.58,37545.55,36554.17 -500 ms,7478.42,6957.27,7251.82,6737.73,7209.36,6996.37,7082.79,8197.76,7361.87,7425.56,6922.51,7205.28,7282.37,6911.68,8487.22,7773.56,7568.44,7468.08,7326.36,7295.95,8455.48,7575.48,7896.61,7047.68,7777.49,7185.96,6790.64,8381.25,6185.35,7444.36,7338.48,7268.11,7060.93,6857.23,7390.47,7222.05 +0 ms,294139.70,295378.14,278275.06,298397.47,425925.00,298016.33,294297.22,243439.24,425504.53,392881.96,450752.33,440817.90,452771.52,298231.22,274702.17,287031.00,281276.28,229017.38,173762.56,60961.75,29305.41,299162.18,299979.79,474686.27,296579.16,289446.11,221602.48,213724.99,208116.79,294049.42,34531.90,288730.22,283570.96,291573.68,216901.17,283473.11 +10 ms,203865.61,204512.42,195738.08,212577.61,236295.07,215372.48,209670.84,185599.14,236120.77,259618.41,247603.41,253647.31,250549.51,210052.63,199429.59,205333.15,202224.39,174364.24,155390.55,58558.82,25734.38,214828.57,212920.54,248397.16,205408.60,209908.07,173272.88,153097.11,177174.58,210544.29,29682.73,210427.63,200136.88,210263.34,171454.86,205663.71 +100 ms,36460.56,39501.68,34280.51,40764.35,39007.49,41835.16,35358.59,40786.19,39228.59,37526.71,37323.41,36308.72,36599.27,35589.26,36098.83,35663.54,40965.55,36738.88,37525.50,36074.76,23763.11,40085.89,36723.84,36516.98,36489.58,40886.24,36883.18,40805.26,37272.97,38545.54,26575.53,38741.40,38538.52,36966.11,38371.17,35928.09 +500 ms,7526.97,7238.76,7457.14,6879.55,7368.78,6871.51,7700.36,7145.60,7805.55,8333.98,7613.52,6769.87,8375.74,7289.51,7374.84,7320.93,6716.99,7146.48,6643.45,7380.50,8061.90,7473.51,7550.91,7355.47,7928.80,7713.34,7199.10,6822.26,7396.84,6888.49,7111.96,6992.89,7359.96,8550.66,7697.44,7187.61 diff --git a/testresults/processtime_alloc.csv b/testresults/processtime_alloc.csv index 576fe14..c944ff2 100644 --- a/testresults/processtime_alloc.csv +++ b/testresults/processtime_alloc.csv @@ -1,5 +1,5 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -0 ms,75,82,75,75,50,71,78,85,39,36,28,26,53,87,72,79,78,56,73,98,90,83,71,31,66,79,60,98,75,74,99,73,73,73,68,71 -10 ms,103,98,123,95,24,101,90,98,32,14,22,29,27,108,115,87,108,106,103,83,88,83,108,40,110,111,108,89,100,90,multHeapAlloc:,85,107,107,95,95 -100 ms,68,89,115,73,16,90,72,103,24,17,21,18,20,75,98,81,66,99,101,95,81,93,74,19,71,64,70,64,86,80,83,97,108,86,112,92 -500 ms,74,78,102,77,17,70,71,91,21,15,14,14,15,79,94,60,90,92,100,57,104,76,91,17,58,68,86,113,71,86,67,83,60,61,104,76 +0 ms,81,76,68,79,55,62,63,84,55,31,31,36,38,73,59,86,74,61,55,84,82,73,72,33,71,73,57,84,71,72,100,70,83,66,63,62 +10 ms,88,99,119,112,22,102,93,113,37,26,21,25,27,106,101,112,92,97,94,87,99,104,113,28,93,106,109,104,114,110,112,107,95,95,114,110 +100 ms,90,64,78,68,19,76,76,92,23,20,20,20,17,82,73,91,92,109,112,99,108,68,65,20,93,81,72,94,93,105,72,110,91,85,115,75 +500 ms,70,69,65,67,17,76,74,88,18,14,16,14,23,83,85,83,69,101,79,67,108,96,77,18,100,76,84,73,93,76,62,87,91,108,99,88 diff --git a/testresults/processtime_latency.csv b/testresults/processtime_latency.csv index c396716..870e622 100644 --- a/testresults/processtime_latency.csv +++ b/testresults/processtime_latency.csv @@ -1,5 +1,5 @@ ,default,ace,beego,bone,clevergo,denco,echov1,echov2standard,echov2fasthttp,fasthttp-raw,fasthttprouter,fasthttp-routing,gas,gin,gocraftWeb,goji,gojiv2,gojsonrest,gorestful,gorilla,guavastudio_web,httprouter,httptreemux,iris,lars,lion,macaron,martini,neo,pat,possum,r2router,tango,tiger,traffic,vulcan -0 ms,26.42,30.62,28.58,26.90,24.40,25.03,31.49,27.26,19.20,10.18,37.95,15.38,17.35,32.87,24.96,32.22,27.61,16.46,26.83,96.49,181.12,29.21,25.83,26.15,25.46,29.35,22.06,30.58,21.30,24.26,163.37,26.52,28.45,24.71,22.42,21.85 -10 ms,18.16,17.52,20.05,17.29,16.46,18.43,16.32,19.79,16.39,12.72,13.70,15.19,15.39,18.60,20.54,16.28,19.75,22.50,24.77,73.79,183.08,15.83,18.52,14.67,19.27,18.87,21.28,20.47,20.20,17.60,156.87,15.28,19.99,19.16,19.16,16.72 -100 ms,101.04,100.99,101.24,100.80,100.69,100.93,100.76,101.10,100.88,101.23,100.51,100.77,100.60,100.79,101.23,100.91,100.83,101.29,101.36,101.05,181.00,101.33,100.90,100.64,101.18,100.90,101.65,102.11,101.35,101.20,124.31,100.77,100.88,100.82,101.54,101.52 -500 ms,501.51,501.88,502.64,501.88,501.55,502.17,502.00,501.09,501.53,501.15,501.17,501.39,501.57,501.74,501.46,501.30,502.12,501.67,501.92,501.76,503.00,502.24,501.30,501.66,501.70,501.53,501.79,501.98,501.93,501.28,502.92,501.69,501.39,501.58,501.50,501.80 +0 ms,29.59,28.53,26.39,29.22,25.18,20.18,18.16,29.73,43.64,10.52,24.42,27.84,22.86,28.64,20.78,31.13,26.59,21.73,18.08,99.86,181.66,23.51,25.70,33.31,25.94,24.16,18.60,22.68,20.16,25.29,161.90,23.74,30.53,22.79,18.88,19.51 +10 ms,16.31,17.88,20.02,18.86,16.09,19.25,16.86,22.62,17.00,14.91,13.92,14.86,16.57,17.76,18.45,19.83,17.29,20.22,22.92,70.75,165.82,18.30,19.72,13.50,17.14,18.88,22.40,23.54,22.74,18.88,163.56,19.16,17.50,18.04,23.71,19.48 +100 ms,101.32,100.69,100.88,100.85,100.79,100.72,100.78,100.80,100.98,100.66,100.75,100.69,100.66,100.97,101.02,100.78,100.84,101.08,101.65,101.38,151.22,100.88,101.04,101.25,101.09,100.79,101.46,102.77,101.15,100.94,138.21,100.79,101.11,100.85,101.62,101.27 +500 ms,501.30,501.93,502.37,501.82,501.38,501.87,501.81,501.37,501.57,501.23,501.38,501.23,501.25,501.39,502.29,501.41,502.14,501.55,501.78,501.75,503.60,501.61,501.92,501.06,501.69,501.69,501.72,503.01,502.52,501.88,503.01,501.70,501.40,501.30,501.92,501.44