首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 程式使用緩衝 I/O 提升效能

     編輯:Java 相關知識

Java I/O 效能可透過標準緩衝類別提升,原理同作業系統緩衝請求:讀取時優先從記憶體取資料,寫入時暫存記憶體等待更多資料再批次寫入磁碟。

實測對比

直接使用 FileWriter 逐筆寫入 1000 次:

Writer writer = new FileWriter(new File("file.txt"));
for (int i=0; i<1000; i++) {
    writer.write(""+i);
    writer.write(" ");
}
writer.close();

Apple PowerBook 測試:首次 180ms,後續 90ms (JIT 編譯效應)。

改用 BufferedWriter 包裝:

Writer writer = new BufferedWriter(new FileWriter(new File("file.txt")));
// 相同迴圈寫入
writer.close();

執行時間降為 63ms。BufferedWriter 決定何時發送寫入呼叫,可用 flush() 強制輸出。大量小量輸出時預設緩衝效能提升顯著。

完整緩衝家族

  • 字元:BufferedWriter、BufferedReader
  • 位元組:BufferedOutputStream、BufferedInputStream

緩衝不限於檔案系統,任何 Reader/Writer、InputStream/OutputStream 皆可包裝緩衝提升速度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved