一直想測試一下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就把時間耗光了,更不用說去處理其他任務了。