国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java技巧:使用緩沖IO提高性能

2019-11-18 13:28:11
字體:
來源:轉載
供稿:網友

  java 輸入/輸出(IO)的性能可以使用標準的緩沖類提升,就像操作系統通過緩沖請求提高它的速度一樣。例如,假如一段代碼要求從磁盤上讀取數據,它會試圖讀取內存中已有的數據;假如代碼希望向磁盤寫一些東西,它可能在完成寫操作前將輸出在內存中存放一段時間以等待更多的數據。
  
  在Java的IO系統中,將一個字符寫入內存比寫到磁盤上快得多,例如:
  
  // 這段代碼會拋出 IOException
  Writer writer = new FileWriter( new File( "file.txt" ) );
  for(int i=0; i<1000; i++) {
  writer.write(""+i);
  writer.write("/n");
  }
  writer.close( );
  
  在這個范例代碼中,FileWriter一次輸出一個數字,在Apple Powerbook
  上測量消耗的時間,第一次是180毫秒,以后是90毫秒,這個不同可能是JVM的即時(just-in-time)編譯導致的。
  
  給這段代碼添加緩沖功能就是在FileWriter上創建一個BufferedWriter對象。
  
  //這段代碼會拋出IOException
  
  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( );
  現在BufferedWriter會決定以什么頻率向FileWriter發送寫調用。可以使用flush( )方法強制發出寫調用。增加了BufferedWriter后,代碼的運行時間是63毫秒。假如是有很多小量的輸出,那么BufferedWriter在缺省條件下的性能提升是非常顯著的。
  
  除了BufferedWriter外,BufferedOutputStream也具有相同的品質,對于輸入就是BufferedReader和BufferedInputStream。
  
  需要注重的是緩沖類不光是在文件系統上起作用,任何的Reader/Writer都能進行緩沖以提高字符輸入/輸出的速度,同樣任何OutputStream/InputStream都能進行緩沖以提高字節IO的速度。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定结县| 沙坪坝区| 横峰县| 行唐县| 南宁市| 垦利县| 阿鲁科尔沁旗| 绥化市| 厦门市| 香格里拉县| 子洲县| 六安市| 潞西市| 呼图壁县| 安远县| 平阴县| 拉萨市| 上虞市| 石林| 温泉县| 安康市| 元氏县| 乌兰浩特市| 久治县| 安远县| 青阳县| 蕉岭县| 阿瓦提县| 密云县| 淳安县| 盐边县| 临邑县| 萝北县| 安吉县| 陇西县| 潢川县| 聂荣县| 大竹县| 连州市| 泾阳县| 木里|