为go-http-routing-benchmark增加了Go 1.22新ServeMux的测试内容
长久以来大家在做Go web开发时都会关注router的性能表现。julienschmidt/go-http-routing-benchmark库中囊括了近些年常见常用的router库,并且准备了static、github、google+等众多测试case,来测试router的内存占用以及寻找路由解析参数的性能。
寻找大师, 跟随大师, 模仿大师, 洞察大师, 成为大师!
长久以来大家在做Go web开发时都会关注router的性能表现。julienschmidt/go-http-routing-benchmark库中囊括了近些年常见常用的router库,并且准备了static、github、google+等众多测试case,来测试router的内存占用以及寻找路由解析参数的性能。
Go在1.22中为开发者带来了新的ServeMux
,可以支持更丰富的路由表达式,详细用法见 https://go.dev/blog/routing-enhancements。 在使用中我发现想要获取当前路由匹配的信息在Request
中是无法直接获取的,需要使用func (mux *ServeMux) Handler(r *Request)
再执行一边来拿到当前匹配的Pattern
。不说在很大请求量时频繁调用带来的开销,哪怕小请求量下这样的浪费也是让人于心不忍的。在Gorilla Mux中,router向Request
的Context
设置了routeKey
来达到传递匹配的Route的信息。需要获取这个信息时要从Request
的Context
中找到这个routeKey
,也有不小的开销。
(首发知乎)参加这次黑客马拉松其实是为了圆14年没能成行的黑马,所以在没找到身边朋友的情况下毅然决然的到http://gocn.io上去找了,还真让我找到了。聊下来小伙伴对我的项目想法也很认同,所以为什么不试试呢。最后很意外的拿到了一等奖,感谢评委和主办方(不要忘记感谢祖国感谢党)!
最近在调试HTTPS,买了一个godaddy的证书,ocsp的配置一直不成功,参考了网上各种文档,从godaddy的存储库下载各种证书,尝试各种搜索结果均无果,后来申请了一个startssl的证书,简单配置了一下,从官网下在了根证书和中间证书合成了一下就可以用ocsp了,邮件给startssl的客服,拿到了一个配置文档,经过多次尝试,终于在nginx上配好了用godaddy的坑爹证书的ocsp。对过程没兴趣的,可以看最后一句总结。
Golang版本的fastimage,脱胎于python的 fastimage.
能够在取尽可能少数据的情况下获取图片尺寸。
参考了Ruben Fonseca(@rubenfonseca)的fastimage库 https://github.com/rubenfonseca/fastimage
从golang官方的imagehttps://github.com/golang/image中取到了WEBP及TIFF图片尺寸解析的逻辑