一直想测试一下json的解析速度,前些天终于花了一点时间测了一下,在我的破笔记本上,解析一个包含10个元素(各种类型都有)的object型json,1秒钟大概只能解析不到10w次,就算把内存池用到极致也只能解析12.5w次左右,换用自己定义的一种bjson格式,速度快了一些,但也不超过20w次,想想工作量也的确很大,生成一个包含10个子元素的object,需要动态分配最少10次,还要做最少10次hash的insert,还有各种格式的转换工作,里面有array和object还要额外分配容器并处理子对象,这可都是耗时操作,终于明白了为什么webserver为何一秒钟只能处理几千个请求甚至只能处理几百个请求了,看来要将游戏协议完全用json暂时还是不大可取,从效率上看折中点的做法依然是struct+json或struct+string\0string\0…,这些我以前的blog都写过,只是现在找到了效率上的依据,毕竟游戏服务器一秒都是要处理几万数据包的,要是全是json光解析json就把时间耗光了,更不用说去处理其他任务了。