我的Java應用程序正在將Protobuf消息存儲在數據庫中。應用程序速度很快,但速度可能會更快,因爲並非始終使用所有消息部分,導致不必要的數據上的CPU週期浪費。另外,有些消息具有類似樹的結構,導致分配的內存比我想要的多。FlatBuffer的零分配是Java實現嗎?
做一些研究之後,似乎FlatBuffers將是一個不錯的替代,因爲它聲稱它是零配置/零解析。但是,benchmarks已針對C++運行。我的應用程序是用Java編寫的。 FlatBuffer的Java實現仍然是快速的,它仍然是零分配/零解析?
值得一提的是,現代JVM可以執行轉義分析,並且可以在堆棧中分配對象,如果對象沒有轉義調用堆棧幀。因此重用對象不一定更快,並且由於緩存未命中的增加可能實際上變慢。 – meriton
@meriton好點..但是,API支持任一方式。 – Aardappel