亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

java性能調(diào)優(yōu)的方法

時間:2024-09-26 15:13:40 java語言 我要投稿

java性能調(diào)優(yōu)的方法

  Java是目前軟件開發(fā)領域中使用最廣泛的編程語言之一。Java應用程序在許多垂直領域(銀行、電信、醫(yī)療保健等)中都有廣泛使用。Refcard的目的是,幫助開發(fā)者通過專注于JVM內(nèi)部,性能調(diào)整原則和最佳實踐。以下是小編為大家搜索整理java性能調(diào)優(yōu)的方法,希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時關注我們應屆畢業(yè)生考試網(wǎng)!

  程序性能的主要表現(xiàn)點:

  執(zhí)行速度:程序的反映是否迅速,響應時間是否足夠短

  內(nèi)存分配:內(nèi)存分配是否合理,是否過多地消耗內(nèi)存或者存在內(nèi)存泄漏

  啟動時間:程序從運行到可以正常處理業(yè)務需要花費多少時間

  負載承受能力:當系統(tǒng)壓力上升時,系統(tǒng)的執(zhí)行速度、響應時間的上升曲線是否平緩

  衡量程序性能的主要指標:

  執(zhí)行時間:程序從運行到結束所使用的時間

  CPU時間:函數(shù)或者線程占用CPU的時間

  內(nèi)存分配:程序在運行時占用內(nèi)容的空間

  磁盤吞吐量:描述I/O的使用情況

  網(wǎng)絡吞吐量:描述網(wǎng)絡的使用情況

  響應時間:系統(tǒng)對用戶行為或者事件做出響應的時間,響應時間越短,性能越好

  有可能成為系統(tǒng)性能瓶頸的幾個方面:

  磁盤I/O:磁盤I/O讀寫的速度比內(nèi)容慢很多,如果程序中需要等待磁盤I/O處理,低效的磁盤I/O操作會拖累整個系統(tǒng)

  網(wǎng)絡操作:由于網(wǎng)絡環(huán)境的不確定性,導致網(wǎng)絡數(shù)據(jù)讀寫的操作可能比本地磁盤I/O更慢,如果,網(wǎng)絡操作處理不當,也回成為系統(tǒng)瓶頸

  CPU:對計算資源要求較高的應用,由于長時間、不間斷地大量占用CPU資源,那么對CPU的爭奪將導致系統(tǒng)性能問題

  異常:Java中的異常捕獲和處理都是非常消耗資源的,如果代碼中高頻率的異常處理,那么代碼的整體系統(tǒng)能就會明顯下降

  數(shù)據(jù)庫:大量數(shù)據(jù)對數(shù)據(jù)庫的讀寫操作是相當費時的,而往往很多代碼中需要等到數(shù)據(jù)庫操作完成之后才可以進行后續(xù)操作,這種緩慢的同步操作也將會成為系統(tǒng)瓶頸

  鎖競爭:對于高并發(fā)的系統(tǒng)來講,鎖競爭是相當激烈的,這對性能是一個極大的打擊,鎖競爭會明顯增加線程上下文切換的開銷,而往往這些開銷都是與應用需求無關的系統(tǒng)開銷,白白占用CPU資源,帶來不了任何好處

  內(nèi)存:一般情況,只要應用程序設計合理,內(nèi)存在讀寫速度上不太可能成為性能瓶頸。除非程序中進行了高頻率的內(nèi)存交換和掃描。內(nèi)存成為系統(tǒng)瓶頸的最可能的情況就是內(nèi)存大小不足。如果應用程序中將一些常用的核心數(shù)據(jù)存入內(nèi)存,這個一定程度上會降低程序性能,因此,在將常用數(shù)據(jù)寫入內(nèi)存的時候,要注意一些優(yōu)化處理

  性能調(diào)優(yōu)的層次:

  設計調(diào)優(yōu):處于所有調(diào)優(yōu)手段的上層,在軟件開發(fā)之前進行,軟件設計和架構對軟件整體質(zhì)量有決定性的影響,所以,設計調(diào)優(yōu)對系統(tǒng)性能的影響也是最大的。其他方面的優(yōu)化都是對系統(tǒng)微觀層面上量的優(yōu)化,而設計優(yōu)化是對系統(tǒng)在宏觀方面上質(zhì)的優(yōu)化。一個良好的系統(tǒng)設計可以規(guī)避很多潛在的性能問題,因此,盡可能多花時間在系統(tǒng)設計上,是創(chuàng)建高性能程序的關鍵

  代碼調(diào)優(yōu):發(fā)生在軟件開發(fā)的過程中、軟件開發(fā)完成后、軟件維護過程中,對代碼進行改進和優(yōu)化,要求開發(fā)員熟悉語言的API、在合適場景使用正確的API、對算法和數(shù)據(jù)結構靈活運用

  JVM調(diào)優(yōu):需要對JVM運行原理和基本內(nèi)存結構有一定了解,然后依據(jù)應用程序的特點,設置合理的JVM啟動參數(shù)

  數(shù)據(jù)庫調(diào)優(yōu):主要包括在應用層對SQL語句進行優(yōu)化,對數(shù)據(jù)庫進行優(yōu)化(設計具有良好表結構的數(shù)據(jù)庫),對數(shù)據(jù)庫軟件進行優(yōu)化(比如使用Oracle數(shù)據(jù)庫,需要設置合理大小的共享池、緩存緩沖區(qū)等)

  操作系統(tǒng)調(diào)優(yōu):不同類型的操作系統(tǒng),調(diào)優(yōu)的手段和參數(shù)可能會有所不同。在主流額UNIX系統(tǒng)中,共享內(nèi)存段、信號量、共享內(nèi)存最大值、共享內(nèi)存最小值等都是可以進行優(yōu)化的系統(tǒng)資源

  基本調(diào)優(yōu)策略和手段

  明確性能優(yōu)化的目標,確定優(yōu)化的對象和最終目的(首先定位到系統(tǒng)的性能瓶頸,確定相關代碼進行代碼優(yōu)化,如已無代碼優(yōu)化空間,則要考慮其他方面的優(yōu)化:JVM優(yōu)化、數(shù)據(jù)庫層面的優(yōu)化、操作系統(tǒng)層面的優(yōu)化等)

  對性能優(yōu)化要進行嚴格的測試

【java性能調(diào)優(yōu)的方法】相關文章:

關于java性能調(diào)優(yōu)的方法03-03

java顯示圖片的方法03-27

java的常見排序方法04-03

java文檔注釋的方法03-27

java泛型方法03-27

Java 異步回調(diào)機制實例解析03-18

java遠程方法調(diào)用技巧03-29

Java遠程方法調(diào)用RMI03-18

Java重載使用方法12-11