熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

使用緩沖提高輸入/輸出的性能

2013-11-15 11:42:51  來源: JSP教程 

  Java IO 的性能可以使用標准的緩沖類提高
  
  如果要求從磁盤上讀取數據它會試圖讀取內存中已有的數據如果代碼希望向磁盤寫一些東西它可能在完成寫操作前將輸出在內存中存放一段時間以等待更多的數據
  
  在Java IO中將一個字符寫入內存比寫到磁盤上快得多例如
  
  try{
  Writer writer = new FileWriter( new File( filetxt ) );
  for(int i=; i<1000; i++) {
  writer.write(""+i);
  writer.write("\n");
  }
  writer.close( );
  }catch(IOException ioe){}
  
  上述代碼中,FileWriter一次輸出一個數字,在Apple Powerbook 上測量消耗的時間,第一次是180毫秒,以後是90毫秒,這個不同可能是JVM的准實時(just-in-time)編譯引起的。tw.WInGwIT.COM
  
  通過BufferedWriter來包裝FileWriter實現緩沖。
  
  try{
  Writer writer = new BufferedWriter(new FileWriter( new File( "file.txt" )) );
  for(int i=0; i<1000; i++) {
  writer.write(""+i);
  writer.write("\n");
  }
  writer.close( );
  }catch(IOException ioe){}
  
  現在BufferedWriter會決定以什麼頻率向FileWriter發送寫調用。可以使用flush( )方法強制發出寫調用。增加了BufferedWriter後,代碼的運行時間是63毫秒。如果是有很多小量的輸出,那麼BufferedWriter在缺省條件下的性能提升是非常顯著的。
  
  除了BufferedWriter外,BufferedOutputStream也具有相同的品質,對於輸入就是BufferedReader和BufferedInputStream。
  
  需要注意的是緩沖類不光是在文件系統上起作用,任何的Reader/Writer都能進行緩沖以提高字符輸入/輸出的速度,同樣任何OutputStream/InputStream都能進行緩沖以提高字節IO的速度。
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19483.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.