对象流与文本流-谁';快一点?JAVA
我正在做一项工作,我需要用对象流和文本流来测量写和读的时间。我期望对象流比文本流快,但是,对于这两种情况(读和写),我的结果正好相反。 有人能告诉我通常哪个更快对象流与文本流-谁';快一点?JAVA,java,Java,我正在做一项工作,我需要用对象流和文本流来测量写和读的时间。我期望对象流比文本流快,但是,对于这两种情况(读和写),我的结果正好相反。 有人能告诉我通常哪个更快 谢谢。为什么您认为对象流会更快?他们有很高的开销。许多人更喜欢其他序列化机制。对象流需要序列化和反序列化类信息,因此会带来相当大的开销。对于唯一类的数量很少的大型对象图和数组,它们可以相当有效,但对于小消息,它们的效率是出了名的差。对象序列化还必须做大量的簿记(例如,检测对象图中的周期,并确保每个对象在有多个引用时只发送一次) 另一方面
谢谢。为什么您认为对象流会更快?他们有很高的开销。许多人更喜欢其他序列化机制。对象流需要序列化和反序列化类信息,因此会带来相当大的开销。对于唯一类的数量很少的大型对象图和数组,它们可以相当有效,但对于小消息,它们的效率是出了名的差。对象序列化还必须做大量的簿记(例如,检测对象图中的周期,并确保每个对象在有多个引用时只发送一次) 另一方面,文本流非常简单,开销很小。它们在你的测试中速度更快,这并不奇怪 尽管这在很大程度上取决于您如何将数据编码为文本:对象图的一些简单文本表示实际上比常规Java对象序列化糟糕得多。基本上,尝试以文本形式重新设计Java对象序列化是个坏主意 如果您对对象的快速高效序列化感兴趣,还应考虑:
- 高级对象序列化库,如Goggle或
- 高效的文本数据表示格式,如JSON或Clojure s表达式(这两种格式都有良好的库支持,并在现场得到验证)