伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 【中培課堂】影響Java EE性能的十大問題

【中培課堂】影響Java EE性能的十大問題

2016-06-30 09:16:47 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

中培偉業(yè)《JAVA高級開發(fā)技術(shù)實(shí)戰(zhàn)》培訓(xùn)專家程老師 是中國第一批分析設(shè)計師、UML/UP專家、UP統(tǒng)一軟件過程資深教練(國內(nèi)首位軟件項(xiàng)目過程教練)、國內(nèi)較早引入模型驅(qū)動開發(fā)方法的倡導(dǎo)人之一、國內(nèi)最早的UP過程推動人之一。 擅長企業(yè)級應(yīng)用分析設(shè)計與開發(fā);在系統(tǒng)分析設(shè)計和開發(fā)方面均有豐富經(jīng)驗(yàn)。能夠結(jié)合實(shí)際,在復(fù)雜的應(yīng)用環(huán)境中能夠選擇適合需求分析方法定義并改進(jìn)需求規(guī)格說明,降低項(xiàng)目開發(fā)風(fēng)險、縮短開發(fā)周期、提高應(yīng)用系統(tǒng)的可維護(hù)性和可擴(kuò)展性。他在性能優(yōu)化和提升方面也有很深刻的見解,下面他將和大家分享一下常見的10個影響Java EE性能問題。

1.缺乏正確的容量規(guī)劃

容量規(guī)劃是一個全面的和發(fā)展的過程標(biāo)準(zhǔn),預(yù)測當(dāng)前和未來的IT環(huán)境容量需求。制定合理的容量規(guī)劃不僅會確保和跟蹤當(dāng)前IT生產(chǎn)能力和穩(wěn)定性,同時也會確保新項(xiàng)目以最小的風(fēng)險部署到現(xiàn)有的生產(chǎn)環(huán)境中。硬件、中間件、JVM、調(diào)整等在項(xiàng)目部署之前就應(yīng)該準(zhǔn)備好。

2.Java EE中間件環(huán)境規(guī)范不足

“無規(guī)矩不成方圓”。第二個比較普遍的原因是Java EE中間件或者基礎(chǔ)架構(gòu)不規(guī)范。在項(xiàng)目初始,新平臺上面沒有制定合理的規(guī)范,導(dǎo)致系統(tǒng)穩(wěn)定性差。這會增加客戶成本,所以花時間去制定合理的Java EE中間件環(huán)境規(guī)范是必須的。這項(xiàng)工作應(yīng)與初始容量規(guī)劃迭代相結(jié)合。

3.Java虛擬機(jī)垃圾回收過度

各位對“java.lang.OutOfMemoryError”這個錯誤信息是不是很熟悉呢?由于JVM的內(nèi)存空間過度消耗(Java堆、本機(jī)堆等)而拋出的異常。

垃圾收集問題并不一定會表現(xiàn)為一個OOM條件,過度的垃圾收集可以理解成是JVM GC線程在短時間里進(jìn)行輕微或超量收集集合數(shù)據(jù)而導(dǎo)致的JVM暫停時間很長和性能下降。可能有以下幾個原因:

與JVM的負(fù)載量和應(yīng)用程序內(nèi)存占用量相比,Java堆可能選擇的太小。 JVM GC策略使用不合理。 應(yīng)用程序靜態(tài)或動態(tài)內(nèi)存占用量太大,不適合在32位JVM上使用。 JVM OldGen隨著時間推移,泄漏越來越嚴(yán)重,而GC在幾個小時或者幾天后才發(fā)現(xiàn)。 JVM PermGen空間(只有HotSpot VM)或本機(jī)堆隨著時間推移會泄露是一個非常普遍的問題;OOM的錯誤往往是觀察一段時間后,應(yīng)用程序進(jìn)行動態(tài)調(diào)動。 YoungGen和OldGen的比例空間與你的應(yīng)用程序不匹配。 

Java堆在32位的VM上太大,導(dǎo)致本機(jī)堆溢出,具體可以表現(xiàn)為OOM試著去鏈接一個新的Java EE應(yīng)用程序、創(chuàng)建一個新的Java線程或者需要計算本地內(nèi)存分配任務(wù)。 

建議:觀察和深入理解JVM垃圾回收。啟動GC,根據(jù)健康合理的評估來提供所有的數(shù)據(jù)。 記住,GC方面的相關(guān)問題不會在開發(fā)中或者功能測試時發(fā)現(xiàn),它需要在多用戶高負(fù)載的測試環(huán)境下發(fā)現(xiàn)。 

4.與外部系統(tǒng)集成過多或過少

導(dǎo)致Java EE性能差的第四個原因是高分布式系統(tǒng),典型案例是電信IT環(huán)境。在這個環(huán)境中,一個中間件領(lǐng)域(例如,服務(wù)總線)很少會做所有的工作,而僅僅是把一些業(yè) 務(wù)“委托”給其他部分,例如產(chǎn)品質(zhì)量,客戶資料和訂單管理,到其他Java EE中間件平臺或遺留系統(tǒng)中,如支持各種不同的負(fù)載類型和通信協(xié)議的大型機(jī)。

這樣的外部系統(tǒng)調(diào)用意味著客戶端的Java EE應(yīng)用程序觸發(fā)創(chuàng)建或重用套接字鏈接從外部系統(tǒng)中讀寫數(shù)據(jù)。根據(jù)業(yè)務(wù)流程的實(shí)施和實(shí)現(xiàn)可以配置成同步調(diào)用或異步調(diào)用。需要注意的是,響應(yīng)時間會根據(jù)外部 系統(tǒng)的穩(wěn)定狀況進(jìn)行改變,所以通過適當(dāng)?shù)氖褂贸瑫r來保護(hù)Java EE應(yīng)用程序和中間件也是非常重要的。

5.缺乏適當(dāng)?shù)臄?shù)據(jù)庫SQL調(diào)優(yōu)和容量規(guī)劃

大家可能會對這一個感到驚奇:數(shù)據(jù)庫問題。大多數(shù)Java EE企業(yè)系統(tǒng)是依賴關(guān)系型數(shù)據(jù)庫處理復(fù)雜的業(yè)務(wù)流程。一個基礎(chǔ)扎實(shí)穩(wěn)固的數(shù)據(jù)庫環(huán)境可以確保IT環(huán)境有規(guī)模的增長,來支持日益不斷擴(kuò)大的業(yè)務(wù)。

在實(shí)際中,與數(shù)據(jù)庫相關(guān)的性能問題是很常見的。由于多數(shù)數(shù)據(jù)庫事務(wù)處理都是由JDBC數(shù)據(jù)源執(zhí)行的(包括關(guān)系持久化API,例如Hibernate)。而性能問題最初都會表現(xiàn)為線程阻塞。

6.特定應(yīng)用程序性能問題

下面關(guān)注的是比較嚴(yán)重的Java EE應(yīng)用程序問題。關(guān)于特定應(yīng)用程序性能問題,總結(jié)了以下幾個點(diǎn):

(一)線程安全的代碼問題 

(二)通信API缺少超時設(shè)置 

(三)I/O、JDBC或者關(guān)系型API資源管理問題 

(四)缺乏適當(dāng)?shù)臄?shù)據(jù)緩存 

(五)數(shù)據(jù)緩存過度 

(六)過多的日志記錄 

7.Java EE中間件調(diào)優(yōu)問題

一般Java EE中間件都已經(jīng)夠用了,只是缺少必要的優(yōu)化。大多數(shù)Java EE容器都能有多種方案供你的應(yīng)用程序和業(yè)務(wù)進(jìn)程選擇。如果沒有進(jìn)行適當(dāng)?shù)恼{(diào)整和實(shí)踐,那么Java EE容器可能會處于一種消極的狀態(tài)。

8.主動監(jiān)控不足

缺乏監(jiān)控,并不會帶來實(shí)際性能問題,但它會影響你對Java EE平臺性能和健康狀況的了解。最終,這個環(huán)境可以達(dá)到一個破發(fā)點(diǎn),這可能會暴露出一些缺陷和問題(JVM的內(nèi)存泄漏,等等)。

以我的經(jīng)驗(yàn)來看,如果一開始不進(jìn)行監(jiān)控,而是運(yùn)行幾個月或者幾年后再進(jìn)行,平臺穩(wěn)定性將大打折扣。也就是說,改善現(xiàn)有的環(huán)境永遠(yuǎn)都不會晚。下面是一些建議:

復(fù)查現(xiàn)有Java EE環(huán)境監(jiān)測能力和找到需改進(jìn)的地方, 監(jiān)測方案應(yīng)該盡可能的覆蓋整個環(huán)境, 監(jiān)控方案應(yīng)該符合容量規(guī)劃進(jìn)程。 

9.公共基礎(chǔ)設(shè)施硬件飽和

這個問題經(jīng)常在有太多的Java EE中間件環(huán)境隨著JVM進(jìn)程被部署到現(xiàn)有硬件上面時看到。太多的JVM進(jìn)程對有限的物理CPU核心來說是一個真正的程序性能殺手。另外,隨著客戶端業(yè)務(wù)的增長,硬件方面也需要再次考慮。

10.網(wǎng)絡(luò)延遲

最后一個影響性能問題的是網(wǎng)絡(luò),網(wǎng)絡(luò)問題時不時的都會發(fā)生,如路由器、交換機(jī)和DNS服務(wù)器失敗。更常見的是在一個高度分散的IT環(huán)境中定期或間歇性延遲。

間歇或定期的延遲會觸發(fā)一些重要的性能問題,以不同的方式影響Java EE應(yīng)用程序。因?yàn)榇罅康膄etch迭代(網(wǎng)絡(luò)傳入和傳出),涉及大數(shù)據(jù)集的數(shù)據(jù)查詢問題的應(yīng)用會非常受網(wǎng)絡(luò)延遲的影響 

應(yīng)用程序在處理外部系統(tǒng)大數(shù)據(jù)負(fù)載(例如XML數(shù)據(jù))時也會很受網(wǎng)絡(luò)延遲的影響,會在發(fā)送和接收響應(yīng)時產(chǎn)生巨大的響應(yīng)間隔。 

Java EE容器復(fù)制過程(集群)也會受到影響,并且會讓故障轉(zhuǎn)移功能(如多播或單播數(shù)據(jù)包損失)處于風(fēng)險中。 JDBC行數(shù)據(jù)“預(yù)取”、XML數(shù)據(jù)壓縮和數(shù)據(jù)緩存可以減少網(wǎng)絡(luò)延遲。在設(shè)計一個新的網(wǎng)絡(luò)拓?fù)鋾r,應(yīng)該仔細(xì)檢查這種網(wǎng)絡(luò)延遲問題。

標(biāo)簽: Java開發(fā)
主站蜘蛛池模板: 一及黄色片子 | 国产视频网站在线 | 最好看2019高清中文字幕视频 | av午夜影院 | 成人学院中文字幕 | 国产一区二区在线观看免费视频 | 藏精阁成人免费观看在线视频 | 欧美精品v国产精品v日韩精品 | 日批一级片 | 欧美日韩一区二区在线视频 | www.日韩视频 | 国产人碰人摸人爱免费视频 | 欧美日韩性视频在线 | 一级真人毛片 | 国产无人区码SUV | 性一交一乱一伦一色一情丿按摩 | 乱肉妇精品av | 51久久国产露脸精品国产 | 亚洲美女又黄又爽在线观看 | 欧美国产综合色视频 | 最近的2019中文字幕免费 | 97青青 | 538国产精品 | 亚洲资源在线观看 | 成www日本在线观看 福利一区二区在线 | 中国农村一级毛片 | 樱花草在线观看播放WWW | 把高贵美妇调教成玩物的视频 | 天天射寡妇射 | 久久久亚洲欧洲日产国码二区 | 中文成人在线 | 欧美激情一级精品国产 | 热の综合热の视频一区 | 亚洲自偷观看高清久久 | 国产a三级4三级 | 国产乱人乱偷精品视频a人人澡 | 一级毛片一级毛片一级毛片aa一 | 天堂а在线地址8最新版 | 精品视频一区二区三区免费 | 黄色av一级| 午夜免费福利在线观看 |