gpt4 book ai didi

java - java.io 包中的缓冲如何优化性能

转载 作者:行者123 更新时间:2023-11-30 07:54:10 25 4
gpt4 key购买 nike

java.io 包中的缓冲如何优化性能。我已经阅读了 java.io 包中主要类的源代码,我注意到我将一个流包装到一个缓冲流中——然后它最终会发生同样的工作,但不知何故它会提高性能。我知道缓冲网络将使用缓存节省一些输出流量,但文件写入如何从缓存中获益。我假设答案在 Java 之外的某个地方——比如在 Jit 编译器或底层操作系统中。

最佳答案

JNI 调用和下面的系统调用并不便宜。因此,如果您一次读取或写入几个字节,这可能会变得非常昂贵。相反,一次读取/写入大小为几千字节的缓冲区,然后仅在缓冲区上执行数组访问(通常在 x86 上编译为单个 mov 指令)可能会很多便宜多了。

但它们并不是普遍更快,在某些情况下,当您想要在直接字节缓冲区、文件或套接字 channel 之间传输数据 block 时scatter/gathertransfer方法或内存映射文件可以提高性能,因为它们避免了中间复制。

关于java - java.io 包中的缓冲如何优化性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44257062/

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