我測試了其他數據格式(xml,json,默認對象序列化,hessian,一個專有版本)和庫(jaxb,快速信息集,手寫)和寫作),但節儉的格式不包括在內。具有多個轉換器(如xml)的格式的性能差異非常大,從非常慢到非常快。作者聲稱與感知表現之間的相關性很弱。特別是對於那些做出最瘋狂索賠的軟件包。
對於什麼是值得,我發現PB性能是有點過分誇大(通常不是由它的作者,但其他人誰只知道是誰寫的)。使用默認設置,它沒有擊敗最快的文本XML替代。有了優化模式(爲什麼這不是默認?),它速度更快,與最快的JSON軟件包相媲美。 Hessian的速度相當快,文本JSON也是。正確的二進制格式(這裏沒有名稱,它是公司內部的)是最慢的。 Java對象序列化對於較大的消息來說是快速的,對於小對象來說則更少(即對每個操作的高度固定的noverhead)。 用PB郵件大小緻密,但由於你所要做的所有的權衡(數據不自我描述:如果你失去了架構,你失去的數據;當然有指標,和值類型,但是從你如果你願意的話,可以反向工程回到字段名稱),但我個人只會選擇它用於特定用例 - 尺寸敏感,緊密耦合的系統,其中界面/格式從不(或非常非常罕見)更改。 (a)實現通常比規範(數據格式)更重要,(b)端到端,同類最佳(針對不同格式)之間的差異通常並不大足以決定選擇。 也就是說,你可能會更好選擇格式+的API/lib中/框架您喜歡使用最多(或有最好的工具支持),找到最好的實現,並看看是否能工程速度不夠快。 如果(並且只有!)不,請考慮下一個最佳選擇。
PS。不確定這裏的EJB3是什麼。也許只是簡單的Java序列化?
ASN.1可以成爲研究的一部分嗎? – Vincent 2010-08-24 14:28:41
謝謝。我很想看看[Fast Infoset](http://en.wikipedia.org/wiki/Fast_Infoset)(ITU-T X.891建議書| ISO/IEC 24824-1)和[EXI](http:///en.wikipedia.org/wiki/Efficient_XML_Interchange)(W3C)。 – nealmcb 2012-02-29 06:45:22
從https://code.google.com/p/thrift-protobuf-compare/wiki/BeyondNumbers看來,JSON基準測試只是手動將縮寫字符串寫入輸出。 – h22 2015-02-10 10:54:47