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

Java程序性能優化-木桶原理與性能瓶頸

2013-11-23 20:01:55  來源: Java高級技術 

    木桶原理與性能瓶頸

  木桶原理又稱短板理論其核心思想是一只木桶盛水的多少並不取決於桶壁上最高的那塊木塊而是取決於桶壁上最短的那塊如圖所示

  圖  木桶原理示意圖

  將這個理論應用到系統性能優化上可以這麼理解即使系統擁有充足的內存資源和CPU資源但是如果磁盤I/O性能低下那麼系統的總體性能是取決於當前最慢的磁盤I/O速度而不是當前最優越的CPU或者內存在這種情況下如果需要進一步提升系統性能優化內存或者CPU資源是毫無用處的只有提高磁盤I/O性能才能對系統的整體性能進行優化而此時磁盤I/O就是系統的性能瓶頸

  注意根據木桶原理系統的最終性能取決於系統中性能表現最差的組件因此為了提升系統整體性能必須對系統中表現最差的組件進行優化而不是對系統中表現良好的組件進行優化

  根據應用的特點不同任何計算機資源都有可能成為系統瓶頸其中最有可能成為系統瓶頸的計算資源如下

  磁盤I/O:由於磁盤I/O讀寫的速度要比內存慢很多程序在運行過程中如果需要等待磁盤I/O完成那麼低效的I/O操作會拖累整個系統

  網絡操作對網絡數據進行讀寫的情況與磁盤I/O類似由於網絡環境的不確定性尤其是對互聯網上數據的讀寫網絡操作的速度可能比本地磁盤I/O更慢因此如不加特殊處理也極可能成為系統瓶頸

  CPU:對計算資源要求較高的應用由於其長時間不間斷地大量占用CPU資源那麼對CPU的爭奪將導致性能問題如科學計算D渲染等對CPU需求旺盛的應用

  異常對Java應用來說異常的捕獲和處理是非常消耗資源的如果程序高頻率地進行異常處理則整體性能便會有明顯下降

  數據庫大部分應用程序都離不開數據庫而海量數據的讀寫操作可能是相當費時的而應用程序可能需要等待數據庫操作完成或者返回請求的結果集那麼緩慢的同步操作將成為系統瓶頸

  鎖競爭對高並發程序來說如果存在激烈的鎖競爭無疑是對性能極大的打擊鎖競爭將會明顯增加線程上下文切換的開銷而且這些開銷都是與應用需求無關的系統開銷白白占用寶貴的CPU資源卻不帶來任何好處

  內存一般來說只要應用程序設計合理內存在讀寫速度上不太可能成為性能瓶頸除非應用程序進行了高頻率的內存交換和掃描但這些情況比較少見使內存制約系統性能的最可能的情況是內存大小不足與磁盤相比內存的大小似乎小的可憐這意味著應用軟件只能盡可能將常用的核心數據讀入內存這在一定程度上降低了系統性能

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

  編輯推薦

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

  Oracle索引技術

  ORACLEG數據庫開發優化指南


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27848.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.