當前位置:編程學習大全網 - 腳本源碼 - Java程序性能優化-緩沖(Buffer)(1)

Java程序性能優化-緩沖(Buffer)(1)

  ? 常用優化組件和方法

 本節主要介紹可用於系統性能優化的組件和性能優化思想 重點介紹緩沖和緩存這兩個組件以及它們的使用方法 此外 還將介紹幾種常用的優化思想 如池化對象 並行代替串行 負載均衡 以及時間換空間和空間換時間

  ? 緩沖(Buffer)( )

 緩沖區是壹塊特定的內存區域 開辟緩沖區的目的是通過緩解應用程序上下層之間的性能差異 提高系統的性能 在日常生活中 緩沖的壹個典型應用是漏鬥 如圖 所示

 圖 ? 緩沖的示意圖

 圖 顯示了漏鬥作為緩沖區的使用場景 上層系統如茶壺 下層系統如水瓶 現需要將茶壺中的水倒入水瓶中 這就有如將內存中的數據寫入硬盤中壹樣 茶壺的出水速度可以很快 但是水瓶的瓶口很細 因此形成性能瓶頸 要將水全部倒入瓶中 必須等待瓶口的水緩緩流下 為了加快速度 可以使用壹個漏鬥(緩沖)

 漏鬥的初始口徑很大 並且擁有壹定的容量 因此 茶壺中的水可以先倒入漏鬥中 就有如內存數據先寫入壹塊緩沖區 只要漏鬥的容量夠大 茶壺裏的水很快就能倒完 至此 上層系統完成工作 可以去處理其他業務邏輯 而此時 水並未完全進入瓶中 而大部分被積累在漏鬥中 這就可以由下層系統慢慢處理 直到水完全進入瓶中 漏鬥(緩沖區)被清空

 註意 緩沖可以協調上層組件和下層組件的性能差 當上層組件性能優於下層組件時 可以有效減少上層組件對下層組件的等待時間

 基於這樣的結構 上層應用組件不需要等待下層組件真實地接受全部數據 即可返回操作 加快了上層組件的處理速度 從而提升系統整體性能

 緩沖最常用的場景就是提高I/O的速度 為此 JDK內不少I/O組件都提供了緩沖功能 比如 當使用FileWriter時 進行文件寫操作的代碼如下

 Writer writer = new FileWriter(new File( file txt ))

 long begin=System currentTimeMillis()

 for (int i = ; i < CIRCLE; i++) {

 writer write(i) //寫入文件

 }

 writer close()

 System out println( testFileWriter spend: +(System currentTimeMillis() begin))

 為進行I/O優化 可以為FileWriter加上緩沖

 Writer writer = new BufferedWriter(new FileWriter(new File( file txt ))) ? //增加了緩沖

 long begin=System currentTimeMillis()

 for (int i = ; i < CIRCLE; i++) {

 writer write(i)

 }

 writer close()

 System out println( testFileWriterBuffer spend: +(System currentTimeMillis() begin))

 以上代碼使用BufferedWriter為FileWriter對象增加緩沖功能 BufferedWriter對象擁有兩個構造函數

 public BufferedWriter(Writer out)

 public BufferedWriter(Writer out int sz)

? 返回目錄 Java程序性能優化 讓妳的Java程序更快 更穩定

  編輯推薦

? Java程序設計培訓視頻教程

? J EE高級框架實戰培訓視頻教程

? J ME移動開發實戰教學視頻

 Visual C++音頻/視頻技術開發與實戰

 Oracle索引技術

lishixinzhi/Article/program/Java/gj/201311/27807

  • 上一篇:簡單的英文繞口令
  • 下一篇:怎麽用ps做演唱會海報?用ps做海報的步驟
  • copyright 2024編程學習大全網