> Looking a little further at deserialization since Thrift seemed to be > performing worse than protocol buffers there, the problem may be related to > the fact that protocol buffers provides APIs that support direct > serialization to and deserialization from byte arrays which Thrift does not > provide. The test harness is set up such that the output of serialize() and > the input of deserialize() is a byte array, so this means that Thrift needs > to do more work to match up with the test harness. I am still investigating > this. My hope is that if you run the benchmark multiple times before the actual run that you examine, the n will notice that read and write are often being called with a TCompactProtocol and TMemoryBuffer and inline the calls.
--David
