gpt4 book ai didi

java - 通过带有对象输入/输出流的 Socket 发送的对象的大小真的很重要吗?

转载 作者:行者123 更新时间:2023-12-01 19:17:48 25 4
gpt4 key购买 nike

flush the OutputStream 效率更高吗每次单独调用 ObjectOutputStream#writeObject 后而不是在一系列对象写入后刷新流? (例如:写入对象并刷新 4 次,或者写入 4 次然后只刷新一次?)

ObjectOutputStream 怎么样?内部工作?

最佳答案

Is it somehow better sending four Object[5] (flushing each one) than a Object[20], for example?

这并没有更好。事实上,从性能角度来看,情况可能更糟。每一次刷新都会强制操作系统级 TCP/IP 堆栈“立即”发送数据。如果最后只执行一次刷新,则应该节省系统调用和网络流量。

如果您还没有这样做,请在 Socket OutputStreamObjectOutputStream 之间插入一个 BufferedOutputStream将对性能产生更大的影响。这允许序列化数据在写入套接字流之前累积在内存中。这可能会节省许多系统调用,并且可以将性能提高数量级...具体取决于发送的实际对象。

(四个 Object[5] 对象的表示大于一个 Object[20] 对象,这会导致第一种情况下的性能下降。但是,这最多是微不足道的,与刷新和缓冲问题相比很小。)

How does this stream work internally?

这个问题太笼统,无法明智地回答。我建议您从 this page 上的文档开始阅读序列化。 .

关于java - 通过带有对象输入/输出流的 Socket 发送的对象的大小真的很重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5812560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com