熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

使用特定的包在Java中高效處理日志記錄

2013-11-23 19:23:42  來源: Java核心技術 

  這幾天由於工作的原因對以前開發的系統進行了測試這個系統主要作用就是傳輸數據將一個數據庫的數據搬到另外一個數據庫中期間可能需要通過Internet而目標的接收者也不一定再線的這麼一個咚咚
  
    測試了兩種數據庫分別對其進行數據轉入轉出處理常被人說你寫的程序效率低不可用其實不然這次測試發現原來配置非常重要:
  
    ) 編碼
  
    由於程序使用Java寫的又要兼容各個不同的數據庫因而需要對字符串型的數據進行編碼轉換
  
    String str = new String(rsgetString(i)getByte(databaseEncoding));
  
    當數據量小的時候察覺不出來當數據量大時就發現這個消耗有些驚人
  
    if(databaseEncodingequals(fileEncoding)){
  
      return new String(rsgetString(i)getByte(databaseEncoding));
  
    }
  
    經過更改後當fileEncoding和databaseEncoding時數據處理效率提高倍以上
  
    )硬盤
  
    在做測試時當數據庫與應用在同一台機器上時發現硬盤燈從來就沒有熄滅過移開應用程序到另外一台機重現測試發現性能至少提高這和我以前的經驗相反經過分析發現原來我使用的是筆記本硬盤只有rpm當數據量大時硬盤根本應付不過來分開應用後JDBC寫入數據的網絡通信開銷要小於硬盤資源爭奪的開銷速度當然提上去了
  
    看來不同環境下同一應用做測試結論不一定都相同
  
    )綜合損耗
  
    做測試時發現系統最優性能既不是數據較小時也不是數據最大時而是在一個中間值分析發現程序運行有一些綜合損耗這些綜合損耗不論你數據大或小都客觀存在如取數據連接格式校驗等當數據量小時這些損耗占的時間比重就多而當數據量大時雖然這些綜合損耗占的比重少但是數據量大占的動態損耗就多了只有在中間某一個值時兩種損耗都不是特別顯現時系統運行的效率達到了最高值
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26779.html
  • 上一篇文章:

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