使 Buffer 与 Files.copy 一样快
Make Buffer as fast as Files.copy
我对 java 中的缓冲区有一些疑问。
1. 为什么 Files.copy 比使用 Streams 的普通大小的缓冲区快?
2. 有没有办法像 Files.copy 一样快速获得缓冲区,或者有其他方法吗?
3. 如果你有一个快速的替代方案,我该如何修改字节(比如缓冲区)
Files.copy
更快,因为它使用本机代码执行复制,确保使用适合该平台的最快方式。使用常规流时,大部分代码都是非本地代码(FileStreams 除外),因此它无法利用平台的任何可能的性能优势。
如果您想在传输过程中修改字节,最好的办法是使用 FileChannel 并使用 ByteBuffers
。
我对 java 中的缓冲区有一些疑问。
1. 为什么 Files.copy 比使用 Streams 的普通大小的缓冲区快?
2. 有没有办法像 Files.copy 一样快速获得缓冲区,或者有其他方法吗?
3. 如果你有一个快速的替代方案,我该如何修改字节(比如缓冲区)
Files.copy
更快,因为它使用本机代码执行复制,确保使用适合该平台的最快方式。使用常规流时,大部分代码都是非本地代码(FileStreams 除外),因此它无法利用平台的任何可能的性能优势。
如果您想在传输过程中修改字节,最好的办法是使用 FileChannel 并使用 ByteBuffers
。