再加加看
纯 python 不太适合做压测,GIL 的存在导致你只能 fork 进程,虽然说现在 asyncio+uvloop 这一套效率直逼 go,但是也只是单进程,多进程的话本身 pick 也是有开销的,不过可以试试看看。对于 c++ 实现的压测工具来说,500/s 小 case,1w/s 消息处理都不算高
再创未来
pb 接口的话是 google 官方给的,json 的话明显效率上是不够的,越多机器人,效率越低下,一般是函数注册,locust 你还需要自己去改 socket 保持长连接,压测可不是只看高并发的时候,往往很多业务逻辑需要跑一段时间才能发现问题
但是协议压测还是挺大不同,协议测试、压测需要保持长连接,协议需要关注边界、业务逻辑,压测需要关注响应时间、cpu 占用等等,这里对 protobuf 的处理是类似,对压测来说,需要根据回调去处理对应 case,协议测试则不太需要关注这一点
protobuf 自带 json 转换的
这样做也不影响
我们的做法加了一个输入框,截取的时候 copy 了一份 buffer 到处理队列,然后直接转发,修改消息的话在处理队列处理就好了,进入处理队列后明文出来,复制明文填入输入框,输入就可以了
是
确认一下文件是不是最新,看堆栈就是找不到了,可以 debug 调试一下看看为什么找不到