fasthttp中的userdata.go

渐渐发现写log和用印象笔记记录技术细节差不多。感觉印象笔记中短暂的没有条理的记录让我更清晰的认识到blog才是用来沉淀的。

最近困扰我的难题是,作为公司内部使用的gateway,怎么进行性能指标的测试,通俗点讲就是,需要怎么处理请求能更适合当前场景,当然这个问题之后我懂了,会再写一篇blog。

gateway第一版代码经过多次重构,基本写完,仿照wrk进行压力测试,1w+/s的处理能力。但是traefik是2.8w+。所以急切需要知道问题出在哪里。

所以决定调研下fasthttp这个项目。上面描述的都是来由,可以忽略。

看fasthttp时,从最简单的数据结构入手,userdata.go,一般来讲data structure都比较容易懂。结果第一个方法就搞的我有些晕,可能是刚接触go的原因,基础不牢。

userDataKV是用基于slice实现的类似map的东西,如果其中存储c的数据,我觉得可能差不多,甚至优于,因为map涉及到hash key的处理。

推荐使用slice的初学者都去看看,google blog中对于slice设计理念的描述,挺有用的,这会让你在使用array时,不至于担惊受怕性能问题。

fasthttp中的userdata.go
Share this