java 设置 缓冲区大小_java – 确定适当的缓冲区大小
生活随笔
收集整理的這篇文章主要介紹了
java 设置 缓冲区大小_java – 确定适当的缓冲区大小
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要回答你的直接問題:(1)文件系統傾向于使用2的冪,所以你想要做同樣的事情. (2)工作緩沖區越大,誤差小的影響就越小.
如你所說,如果你分配4100并且實際的塊大小是4096,你需要兩次讀取來填充緩沖區.相反,如果你有一個1,000,000字節的緩沖區,那么一個塊高或低并不重要(因為它需要245個4096字節的塊來填充該緩沖區).此外,較大的緩沖區意味著OS具有更好的訂購讀取的機會.
也就是說,我不會使用NIO.相反,我會使用一個簡單的BufferedInputStream,我的read()可能有1k緩沖區.
NIO的主要好處是將數據保留在Java堆之外.例如,如果您正在讀取和寫入文件,則使用InputStream意味著操作系統將數據讀入JVM管理的緩沖區,JVM將其復制到堆內緩沖區,然后再將其復制到堆外緩沖區,然后操作系統讀取堆外緩沖區以寫入實際的磁盤塊(通常添加自己的緩沖區).在這種情況下,NIO將消除該本機堆副本.
但是,要計算哈希值,您需要擁有Java堆中的數據和Mac SPI will move it there.因此,您無法獲得NBI保持數據堆外的好處,而IMO“舊IO”更容易來寫.
只是不要忘記InputStream.read()不能保證讀取你要求的所有字節.
總結
以上是生活随笔為你收集整理的java 设置 缓冲区大小_java – 确定适当的缓冲区大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4G LTE 频率表
- 下一篇: mybatis-plus clickho