Java.io软件包中的缓冲如何优化性能



Java.io软件包中的缓冲如何优化性能。我已经阅读了java.io软件包中的主要类源,并且注意到我将流到缓冲流中 - 然后最终发生了同样的工作,但以某种方式是它会提高性能。我了解缓冲网络将使用缓存节省一些输出流量,但是文件写入如何从缓存中受益。我认为答案在Java之外 - 例如在JIT编译器或基础OS中。

jni调用,下面的syscalls并不便宜。因此,如果您一次读取或写几个字节,这可能会变得非常昂贵。取而代之的是,一次从缓冲区读取/从缓冲区大小到几千字节,然后在缓冲区上执行阵列访问(通常在x86上的单个mov指令(可以更便宜得多。

,但是在某些情况下,当您要在直接字节案,文件或插座之间传输大量数据时,它们并不是普遍更快的速度由于它们避免中间复制,因此可以更具性能。

主要是因为它在系统调用中大大节省了。它不是每个字节调用操作系统一次,而是每次调用一次,每个Bufferload(8K字节(或flush()

最新更新