gpt4 book ai didi

java - flash() OutputStreamWriter 对网络的副作用

转载 作者:行者123 更新时间:2023-12-02 05:52:28 29 4
gpt4 key购买 nike

刷新要发送到网络套接字的 OutputStreamWriter 会产生哪些副作用。

我有一个程序,每隔几个字节就调用out.flush()。有什么理由让我应该等到我需要的所有字节都在缓冲区中吗?

如果刷新太多(更多开销),传输速率会降低吗?

这会减慢我的程序的执行速度(阻塞)吗?

最佳答案

每次写入套接字时,都会增加 5 到 15 微秒。对于缓冲输出,当您刷新()数据时会发生这种情况。注意:如果您没有缓冲输出,它将在每个 write() 上执行,并且flush() 不会执行任何操作。

幸运的是,操作系统期望应用程序进行比最佳值更多的调用,因此它默认使用 Nagle 算法将部分数据写入更大的数据包中。注意:不仅操作系统会这样做,某些网络适配器默认也会这样做。

简而言之,不要太频繁地刷新(),但除非几十微秒加起来对您来说很重要,否则您可能不会注意到其中的差异。例如如果您执行 100 次刷新,则可能会增加一毫秒。

关于java - flash() OutputStreamWriter 对网络的副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23425545/

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