[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"project-7872113":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":41,"post_text":44,"what":45,"said":71,"maker_in_thread":157,"shape":166,"grid":170,"attempts":215,"same_week":216,"maker_shows":34,"maker_hidden":244,"reader_version":245,"card":246},"7872113","Go HTTP Router Benchmark","Go HTTP Request Router Benchmark","title","Show HN: Go HTTP Request Router Benchmark","https:\u002F\u002Fgithub.com\u002Fjulienschmidt\u002Fgo-http-routing-benchmark","github.com","JulienSchmidt",1402404668,2014,89,20,322,2272,15,"notable","dev_tools","benchmark suite","library",[24,25,26,27],"go router benchmark","http router","golang web framework","routing performance","curious",0.125,{"positive":31,"neutral":32,"mixed":33,"critical":34},4,7,0,1,12,{"docs":37,"design":39,"performance":40},{"positive":38,"critical":34},2,{"positive":34,"critical":33},{"positive":34,"critical":33},[34,42,43,33,33,33,43,42,33,43,42,33,43,42,33,33,42,33,42,42],3,5,null,{"problem":46,"audience":56,"pricing":44,"motivation":44,"time_to_build":44,"stack":64,"openness":69,"stage":70,"team_size":70},{"value":47,"source":48,"evidence":49},"Comparing performance of Go HTTP request routers","inferred",[50,52],{"id":51},"post",{"id":53,"by":54,"text":55},"7872584","tedchs","I am so glad to see the benchmarks' source code here. So often these \"performance\" blog posts get written in a completely unreproducible way. A core element of the scientific…",{"value":57,"source":48,"evidence":58},"Go web developers choosing a router",[59,60],{"id":53,"by":54,"text":55},{"id":61,"by":62,"text":63},"7872451","elithrar","Goji does very well given it includes a request context implementation as well. I've been porting over an existing net\u002Fhttp + gorilla\u002Fmux app and like its design.",[65],{"value":66,"source":48,"evidence":67},"Go",[68],{"id":51},"open_source","unknown",{"praise":72,"objections":85,"requests":115,"questions":132,"alternatives":140},[73,78],{"value":74,"source":75,"evidence":76},"Benchmark source code is published so results can be reproduced","commenter",[77],{"id":53,"by":54,"text":55},{"value":79,"source":75,"evidence":80},"Goji recommended for most users and has good design",[81,84],{"id":82,"by":11,"text":83},"7872307","I'd recommend Goji to most users. The one I wrote has better performance, but also less features.",{"id":61,"by":62,"text":63},[86,97,108],{"value":87,"source":75,"evidence":88},"Results are hard to digest; bar charts or sorting would help",[89,93],{"id":90,"by":91,"text":92},"7872408","moe","It's currently very hard to digest any information from this. Some bar-charts would be helpful.",{"id":94,"by":95,"text":96},"7872551","awda","Or just sorting the results by performance, rather than alphabetically.",{"value":98,"source":75,"evidence":99},"Routing is unlikely to be the bottleneck in web apps",[100,104],{"id":101,"by":102,"text":103},"7872152","roncohen","Would be great to see a benchmark of how much time is actually spent in routing compared to all the other disciplines involved in responding to a HTTP request. For any…",{"id":105,"by":106,"text":107},"7873186","pekk","The point was that the routing part is highly unlikely to become your bottleneck in any case.",{"value":109,"source":75,"evidence":110},"Gorilla mux is tested with flat routes rather than subroutes",[111],{"id":112,"by":113,"text":114},"7874932","kinofcain","Thanks for the benchmark, I didn't know half these projects existed. One thing that affects Gorilla mux is that this test is putting all the routes at the top-level instead of…",[116,121],{"value":117,"source":75,"evidence":118},"Add bar charts or sort results by performance",[119,120],{"id":90,"by":91,"text":92},{"id":94,"by":95,"text":96},{"value":122,"source":75,"evidence":123},"Add Revel and Negroni to the benchmark",[124,128],{"id":125,"by":126,"text":127},"7872165","smalu","What about Revel framework?",{"id":129,"by":130,"text":131},"7873167","juliendsv-mbm","What about Negroni ?",[133],{"value":134,"source":75,"evidence":135},"Is httprouter plus negroni a reasonable replacement for Goji?",[136],{"id":137,"by":138,"text":139},"7877163","deepakprakash","Slightly off topic: Would httprouter + negroni be a reasonable replacement for Goji?",[141,145,150],{"value":142,"source":75,"evidence":143},"Goji",[144],{"id":82,"by":11,"text":83},{"value":146,"source":75,"evidence":147},"Gorilla mux",[148,149],{"id":61,"by":62,"text":63},{"id":112,"by":113,"text":114},{"value":151,"source":75,"evidence":152},"Go standard net\u002Fhttp router",[153],{"id":154,"by":155,"text":156},"7873590","voidlogic","I use the standard one for quick\u002Flow performance, things, but Julien's HttpRouter for high performance needs. I've never needed any of the advanced features that the other…",{"comments":31,"answered":38,"key":158},[159,162,163],{"id":160,"text":161},"7872197","For most web-apps this is definitely true. But an efficient router doesn't hurt either. If the router scales well, the routing part will never become your bottleneck. If the…",{"id":82,"text":83},{"id":164,"text":165},"7875398","Contributions are welcome ;)",{"commenters":167,"max_depth":42,"maker_replies":31,"first_comment_mins":168,"lifespan_hours":169},16,8,21,[171,173,175,179,181,183,185,186,190,192,194,195,197,201,202,204,206,208,210,212],[90,33,34,172,91,33],"project\u002Fcritical\u002Fdocs",[94,33,42,174,95,33],"project\u002Fneutral\u002Fdesign",[176,33,43,177,178,33],"7875653","project\u002Fpositive\u002Fdocs","evanwillms",[101,34,33,180,102,33],"other\u002Fneutral\u002Fperformance",[160,34,33,182,11,34],"project\u002Fneutral\u002Fperformance",[105,34,33,184,106,33],"commenter\u002Fneutral\u002Fperformance",[53,38,43,177,54,33],[187,42,42,188,189,33],"7872290","maker\u002Fneutral\u002Fnone","Matheo05",[82,42,33,191,11,34],"project\u002Fpositive\u002Fnone",[61,42,43,193,62,33],"project\u002Fpositive\u002Fdesign",[154,42,42,182,155,33],[137,42,33,196,138,33],"other\u002Fneutral\u002Fnone",[198,42,43,199,200,33],"7872415","maker\u002Fpositive\u002Fperformance","gorhill",[112,31,42,182,113,33],[164,31,33,203,11,34],"commenter\u002Fneutral\u002Fnone",[205,31,33,203,113,33],"7876057",[125,43,42,207,126,33],"project\u002Fneutral\u002Fnone",[209,43,33,174,11,34],"7872178",[129,211,42,207,130,33],6,[213,211,42,174,214,33],"7873601","mtalantikite",[],[217,222,226,230,235,239],{"id":218,"name":219,"points":220,"category":221},"7862578","json_resume",187,"productivity",{"id":223,"name":224,"points":225,"category":20},"7868368","Bounce.js",172,{"id":227,"name":228,"points":229,"category":20},"7858296","GoNative",148,{"id":231,"name":232,"points":233,"category":234},"7868211","visited-captcha-history",140,"security_privacy",{"id":236,"name":237,"points":238,"category":20},"7858828","Silk",113,{"id":240,"name":241,"points":242,"category":243},"7869726","Front",94,"web_saas",false,"v2",{"id":247,"name":5,"line":6,"ai":244,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":248,"top":18,"kw":249,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":250,"url":9,"mix":251,"praise":74,"objection":87,"sub":21},7872113,0.13,[24,25,26,27],"13500053053053003033",[31,32,33,34],1794036518878]