我正在做一项工作,我需要测量使用Object Streams和Text Streams编写和读取的时间。我期待Object Streams比Text Streams更快但是,我的结果恰好与两种情况(读和写)相反。 有人能告诉我哪个通常更快?
感谢。
答案 0 :(得分:4)
为什么你认为对象流会更快?他们的开销很高。许多人更喜欢其他序列化机制。
答案 1 :(得分:1)
对象流带来了相当大的开销,因为它们需要序列化和反序列化类信息。它们对于大型对象图和数组来说可以合理有效,其中唯一类的数量很少,但对于小消息来说却是非常糟糕的。对象序列化还必须进行相当多的簿记(例如,检测对象图中的循环并确保每个对象在有多个引用时仅发送一次)
另一方面,文本流非常简单,开销很小。它们在测试中速度更快并不奇怪。
虽然它在很大程度上取决于您如何将数据编码为文本:对象图的一些天真文本表示实际上比常规Java对象序列化更糟糕。基本上,尝试以文本形式重新编写Java对象序列化是一个坏主意......
如果您对快速高效的对象序列化感兴趣,还应考虑: