亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? java性能的優(yōu)化(上)(轉(zhuǎn)).txt

?? 這是一本很好的Java開發(fā)書籍
?? TXT
字號:
作者:運氣
email: webmaster@chinaspx.com
日期:2001-7-10 15:50:57
Java在九十年代中期出現(xiàn)以后,在贏得贊嘆的同時,也引來了一些批評。贏得的贊嘆主要是Java的跨平臺的操作性,即所謂的”Write Once,Run Anywhere”.但由于Java的性能和運行效率同C相比,仍然有很大的差距,從而引來了很多的批評。 
對于服務(wù)器端的應(yīng)用程序,由于不大涉及到界面設(shè)計和程序的頻繁重啟,Java的性能問題看似不大明顯,從而一些Java的技術(shù),如JSP,Servlet,EJB等在服務(wù)器端編程方面得到了很大的應(yīng)用,但實際上,Java的性能問題在服務(wù)器端依然存在。下面我將分四個方面來討論Java的性能和執(zhí)行效率以及提高Java性能的一些方法。 
一.關(guān)于性能的基本知識 
1.性能的定義 
在我們討論怎樣提高Java的性能之前,我們需要明白“性能“的真正含義。我們一般定義如下五個方面作為評判性能的標準。 
1) 運算的性能----哪一個算法的執(zhí)行性能最好 
2) 內(nèi)存的分配----程序需要分配多少內(nèi)存,運行時的效率和性能最高。 
3) 啟動的時間----程序啟動需要多少時間。 
4) 程序的可伸縮性-----程序在用戶負載過重的情況下的表現(xiàn)。 
5) 性能的認識------用戶怎樣才能認識到程序的性能。 
對于不同的應(yīng)用程序,對性能的要求也不同。例如,大部分的應(yīng)用程序在啟動時需要較長的時間,從而對啟動時間的要求有所降低;服務(wù)器端的應(yīng)用程序通常都分配有較大的內(nèi)存空間,所以對內(nèi)存的要求也有所降低。但是,這并不是所這兩方面的性能可以被忽略。其次,算法的性能對于那些把商務(wù)邏輯運用到事務(wù)性操作的應(yīng)用程序來講非常重要。總的來講,對應(yīng)用程序的要求將決定對各個性能的優(yōu)先級。 
2.怎樣才能提高JAVA的性能 
提高JAVA的性能,一般考慮如下的四個主要方面: 
(1) 程序設(shè)計的方法和模式 
一個良好的設(shè)計能提高程序的性能,這一點不僅適用于JAVA,也適用也任何的編程語言。因為它充分利用了各種資源,如內(nèi)存,CPU,高速緩存,對象緩沖池及多線程,從而設(shè)計出高性能和可伸縮性強的系統(tǒng)。 
當然,為了提高程序的性能而改變原來的設(shè)計是比較困難的,但是,程序性能的重要性常常要高于設(shè)計上帶來的變化。因此,在編程開始之前就應(yīng)該有一個好的設(shè)計模型和方法。 
(2) JAVA布署的環(huán)境。 
JAVA布署的環(huán)境就是指用來解釋和執(zhí)行JAVA字節(jié)碼的技術(shù),一般有如下五種。即解釋指令技術(shù)(Interpreter Technology),及時編譯的技術(shù)(Just In Time Compilier Technology), 適應(yīng)性優(yōu)化技術(shù)(Adaptive Optimization Technology), 動態(tài)優(yōu)化,提前編譯為機器碼的技術(shù)(Dynamic Optimization,Ahead Of Time Technology)和編譯為機器碼的技術(shù)(Translator Technology). 
這些技術(shù)一般都通過優(yōu)化線程模型,調(diào)整堆和棧的大小來優(yōu)化JAVA的性能。在考慮提高JAVA的性能時,首先要找到影響JAVA性能的瓶頸(BottleNecks),在確認了設(shè)計的合理性后,應(yīng)該調(diào)整JAVA布署的環(huán)境,通過改變一些參數(shù)來提高JAVA應(yīng)用程序的性能。具體內(nèi)容見第二節(jié)。 
(3) JAVA應(yīng)用程序的實現(xiàn) 
當討論應(yīng)用程序的性能問題時,大多數(shù)的程序員都會考慮程序的代碼,這當然是對的,當更重要的是要找到影響程序性能的瓶頸代碼。為了找到這些瓶頸代碼,我們一般會使用一些輔助的工具,如Jprobe,Optimizit,Vtune以及一些分析的工具如TowerJ Performance等。這些輔助的工具能跟蹤應(yīng)用程序中執(zhí)行每個函數(shù)或方法所消耗掉的時間,從而改善程序的性能。 
(4) 硬件和操作系統(tǒng) 
為了提高JAVA應(yīng)用程序的性能,而采用跟快的CPU和更多的內(nèi)存,并認為這是提高程序性能的唯一方法,但事實并非如此。實踐經(jīng)驗和事實證明,只有遭到了應(yīng)用程序性能的瓶頸,從而采取適當?shù)梅椒ǎ缭O(shè)計模式,布署的環(huán)境,操作系統(tǒng)的調(diào)整,才是最有效的。 
3.程序中通常的性能瓶頸。 
所有的應(yīng)用程序都存在性能瓶頸,為了提高應(yīng)用程序的性能,就要盡可能的減少程序的瓶頸。以下是在JAVA程序中經(jīng)常存在的性能瓶頸。 

[img]http://www.computerworld.com.cn/htm/app/aprog/01_7_9_3a.gif[/img]
 
了解了這些瓶頸后,就可以有針對性的減少這些瓶頸,從而提高JAVA應(yīng)用程序的性能 
4. 提高JAVA程序性能的步驟 
為了提高JAVA程序的性能,需要遵循如下的六個步驟。 
a) 明確對性能的具體要求 
在實施一個項目之前,必須要明確該項目對于程序性能的具體要求,如:這個應(yīng)用程序要支持5000個并發(fā)的用戶,并且響應(yīng)時間要在5秒鐘之內(nèi)。但同時也要明白對于性能的要求不應(yīng)該同對程序的其他要求沖突。 
b) 了解當前程序的性能 
你應(yīng)該了解你的應(yīng)用程序的性能同項目所要求性能之間的差距。通常的指標是單位時間內(nèi)的處理數(shù)和響應(yīng)時間,有時還會比較CPU和內(nèi)存的利用率。 
c) 找到程序的性能瓶頸 
為了發(fā)現(xiàn)程序中的性能瓶頸,通常會使用一些分析工具,如:TowerJ Application Performance Analyzer或VTune來察看和分析程序堆棧中各個元素的消耗時間,從而正確的找到并改正引起性能降低的瓶頸代碼,從而提高程序的性能。這些工具還能發(fā)現(xiàn)諸如過多的異常處理,垃圾回收等潛在的問題。 
d) 采取適當?shù)拇胧﹣硖岣咝阅?
找到了引起程序性能降低的瓶頸代碼后,我們就可以用前面介紹過的提高性能的四個方面,即設(shè)計模式,JAVA代碼的實現(xiàn),布署JAVA的環(huán)境和操作系統(tǒng)來提高應(yīng)用程序的性能。具體內(nèi)容將在下面的內(nèi)容中作詳細說明。 
e) 只進行某一方面的修改來提高性能 
一次只改變可能引起性能降低的某一方面,然后觀察程序的性能是否有所提高,而不應(yīng)該一次改變多個方面,因為這樣你將不知道到底哪個方面的改變提高了程序的性能,哪個方面沒有,即不能知道程序瓶頸在哪。 
f) 返回到步驟c,繼續(xù)作類似的工作,一直達到要求的性能為止。 
 
二. JAVA布署的環(huán)境和編譯技術(shù) 
 開發(fā)JAVA應(yīng)用程序時,首先把JAVA的源程序編譯為與平臺無關(guān)的字節(jié)碼。這些字節(jié)碼就可以被各種基于JVM的技術(shù)所執(zhí)行。這些技術(shù)主要分為兩個大類。即基于解釋的技術(shù)和基于提前編譯為本地碼的技術(shù)。其示意圖如下: 

[img]http://www.computerworld.com.cn/htm/app/aprog/01_7_9_3b.gif[/img]
 
具體可分為如下的五類:   
a) 解釋指令技術(shù) 
其結(jié)構(gòu)圖和執(zhí)行過程如下: 

[img]http://www.computerworld.com.cn/htm/app/aprog/01_7_9_3c.gif[/img] 
 
 JAVA的編譯器首先把JAVA源文件編譯為字節(jié)碼。這些字節(jié)碼對于JAVA虛擬機(JVM)來講就是機器的指令碼。然后,JAVA的解釋器不斷的循環(huán)取出字節(jié)碼進行解釋并執(zhí)行。 
 這樣做的優(yōu)點是可以實現(xiàn)JAVA語言的跨平臺,同時生成的字節(jié)碼也比較緊湊。JAVA的一些優(yōu)點,如安全性,動態(tài)性都得保持;但缺點是省生成的字節(jié)碼沒有經(jīng)過什么優(yōu)化,同全部編譯好的本地碼相比,速度比較慢。 
b) 及時編譯技術(shù)(Just In Time) 
  及時編譯技術(shù)是為了解決指令解釋技術(shù)效率比較低,速度比較慢的情況下提出的,其結(jié)構(gòu)圖如下所示。 

[img]http://www.computerworld.com.cn/htm/app/aprog/01_7_9_3d.gif[/img] 
 
其主要變化是在JAVA程序執(zhí)行之前,又JIT編譯器把JAVA的字節(jié)碼編譯為機器碼。從而在程序運行時直接執(zhí)行機器碼,而不用對字節(jié)碼進行解釋。同時對代碼也進行了部分的優(yōu)化。 
這樣做的優(yōu)點是大大提高了JAVA程序的性能。同時,由于編譯的結(jié)果并不在程序運行間保存,因此也節(jié)約了存儲空間了加載程序的時間;缺點是由于JIT編譯器對所有的代碼都想優(yōu)化,因此也浪費了很多的時間。 
IBM和SUN公司都提供了相關(guān)的JIT產(chǎn)品。 
c) 適應(yīng)性優(yōu)化技術(shù)(Adaptive Optimization Technology) 
同JIT技術(shù)相比,適應(yīng)性優(yōu)化技術(shù)并不對所有的字節(jié)碼進行優(yōu)化。它會跟蹤程序運行的成個過程,從而發(fā)現(xiàn)需要優(yōu)化的代碼,對代碼進行動態(tài)的優(yōu)化。對優(yōu)化的代碼,采取80/20的策略。從理論上講,程序運行的時間越長,代碼就越優(yōu)化。其結(jié)構(gòu)圖如下: 
 
[img]http://www.computerworld.com.cn/htm/app/aprog/01_7_9_3e.gif[/img]
 
其優(yōu)點是適應(yīng)性優(yōu)化技術(shù)充分利用了程序執(zhí)行時的信息,發(fā)行程序的性能瓶頸,從而提高程序的性能;其缺點是在進行優(yōu)化時可能會選擇不當,發(fā)而降低了程序的性能。 
其主要產(chǎn)品又IBM,SUN的HotSpot. 
d) 動態(tài)優(yōu)化,提前編譯為機器碼的技術(shù)(Dynamic Optimization,Ahead Of Time) 
動態(tài)優(yōu)化技術(shù)充分利用了JAVA源碼編譯,字節(jié)碼編譯,動態(tài)編譯和靜態(tài)編譯的技術(shù)。其輸入時JAVA的原碼或字節(jié)碼,而輸出是經(jīng)過高度優(yōu)化的可執(zhí)行代碼和個來動態(tài)庫的混合(Window中是DLL文件,UNIX中是共享庫.a .so文件)。其結(jié)構(gòu)如下: 

[img]http://www.computerworld.com.cn/htm/app/aprog/01_7_9_3f.gif[/img] 
 
其優(yōu)點是能大大提高程序的性能;缺點是破壞了JAVA的可移植性,也對JAVA的安全帶來了一定的隱患。 
其主要產(chǎn)品是TowerJ3.0. 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产夜色精品鲁鲁99| 99精品欧美一区| 不卡视频在线看| 欧美一区二区视频在线观看| 国产精品美女久久久久久久久久久 | 麻豆精品视频在线观看免费| 成人综合在线观看| 日韩你懂的在线播放| 亚洲久草在线视频| 国产成人亚洲综合a∨婷婷| 欧美日韩电影在线| 亚洲精品视频在线观看免费| 国精产品一区一区三区mba视频| 在线看国产一区二区| 久久久一区二区三区| 首页亚洲欧美制服丝腿| 日韩一区二区电影网| 欧美激情在线一区二区| 精品在线免费视频| 91精品一区二区三区在线观看| 一色桃子久久精品亚洲| 国产露脸91国语对白| 欧美成人激情免费网| 视频在线在亚洲| 欧美日韩日日摸| 亚洲高清一区二区三区| 欧美最新大片在线看| 亚洲欧美激情视频在线观看一区二区三区 | 日韩成人一级大片| 欧美日韩成人综合在线一区二区| 国产精品超碰97尤物18| 成人综合在线观看| 久久久99久久| 国产成人超碰人人澡人人澡| 久久久.com| 粉嫩高潮美女一区二区三区| 国产午夜精品一区二区三区四区 | 亚洲色图在线播放| 精品理论电影在线观看 | 亚洲人成精品久久久久| 972aa.com艺术欧美| 亚洲欧美成aⅴ人在线观看| 99精品久久免费看蜜臀剧情介绍| 91色综合久久久久婷婷| 国产三级精品视频| 蜜臀久久99精品久久久久宅男| 欧美精品自拍偷拍| 日本不卡视频在线| 精品国产乱码久久久久久影片| 精久久久久久久久久久| 国产欧美一区二区精品性| 成人激情免费电影网址| 一区二区三区高清| 91精品国产综合久久久久| 韩国视频一区二区| 国产精品第一页第二页第三页| 91香蕉视频mp4| 五月激情综合网| 久久久亚洲国产美女国产盗摄| 成人网在线播放| 亚洲午夜成aⅴ人片| 精品少妇一区二区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 一本大道综合伊人精品热热 | 成人永久免费视频| 亚洲一区二区视频在线观看| 日韩亚洲国产中文字幕欧美| 国产精品一区二区三区乱码| 亚洲美女区一区| 在线播放中文字幕一区| 国产乱淫av一区二区三区| 亚洲精品成人在线| 2021国产精品久久精品| 91免费视频大全| 精品在线亚洲视频| 亚洲一区视频在线| 久久精品视频免费观看| 欧美日韩专区在线| 国产精品夜夜嗨| 亚洲妇女屁股眼交7| 久久精品一二三| 欧美日韩国产另类不卡| 成人自拍视频在线| 秋霞电影网一区二区| 亚洲女厕所小便bbb| 337p粉嫩大胆色噜噜噜噜亚洲| 成人av小说网| 老司机免费视频一区二区三区| 一区二区视频在线| 久久久久国产一区二区三区四区| 欧美亚洲国产一区在线观看网站| 国产呦萝稀缺另类资源| 午夜久久久久久久久久一区二区| 日本一区二区视频在线观看| 日韩亚洲欧美一区二区三区| 色伊人久久综合中文字幕| 国产精品18久久久久久久久久久久| 亚洲h精品动漫在线观看| 国产精品三级电影| 国产性色一区二区| 欧美xxxxxxxxx| 51久久夜色精品国产麻豆| 91免费观看在线| 不卡一区中文字幕| 成人小视频免费在线观看| 韩国女主播成人在线| 日韩综合在线视频| 亚洲高清免费观看高清完整版在线观看| 欧美激情综合在线| 国产三区在线成人av| xf在线a精品一区二区视频网站| 欧美一级艳片视频免费观看| 欧美色手机在线观看| 欧美在线观看视频一区二区三区| 一本色道久久综合亚洲91| 9人人澡人人爽人人精品| 成人国产视频在线观看| 成人午夜伦理影院| 不卡免费追剧大全电视剧网站| 国产99精品视频| 成人avav在线| 色诱亚洲精品久久久久久| 色欧美乱欧美15图片| 欧美视频在线一区二区三区| 国产区在线观看成人精品| 国产人成一区二区三区影院| 国产女人水真多18毛片18精品视频| 国产亚洲美州欧州综合国| 中文字幕不卡在线播放| 国产精品成人网| 亚洲精品ww久久久久久p站 | 国产精品私人自拍| ...中文天堂在线一区| 综合欧美一区二区三区| 亚洲一区二区在线观看视频| 亚洲一区二区三区在线| 日韩福利电影在线观看| 国产真实精品久久二三区| 国产91丝袜在线18| 色综合久久99| 欧美一区二区三区婷婷月色| 久久综合狠狠综合久久综合88| 国产午夜精品久久久久久久| 最新日韩av在线| 丝袜亚洲另类丝袜在线| 国产精品夜夜爽| 欧美午夜电影在线播放| www国产精品av| 亚洲男同1069视频| 男人的j进女人的j一区| av在线不卡电影| 777午夜精品免费视频| 久久久99精品久久| 亚洲一区二区三区自拍| 国产伦精品一区二区三区免费 | 亚洲欧美在线另类| 午夜欧美大尺度福利影院在线看| 国产综合色精品一区二区三区| 国产福利一区在线观看| 欧美日韩国产综合一区二区| 久久这里都是精品| 亚洲自拍欧美精品| 国产成人在线视频网址| 欧美日韩精品欧美日韩精品一综合| 久久一二三国产| 亚洲午夜三级在线| 成人午夜免费视频| 欧美变态口味重另类| 亚洲午夜电影在线| 不卡的电视剧免费网站有什么| 亚洲欧美综合色| 久久99国产精品久久| 欧美午夜片在线看| 国产精品美女久久福利网站| 久久精品久久99精品久久| 色婷婷精品久久二区二区蜜臂av | 欧美性色欧美a在线播放| 久久久不卡网国产精品二区| 日韩av在线发布| 在线观看日韩av先锋影音电影院| 国产亚洲成aⅴ人片在线观看| 日韩av二区在线播放| 欧美图片一区二区三区| 亚洲视频在线一区二区| 国产91丝袜在线18| 欧美精品一区二区三区很污很色的| 亚洲综合图片区| 91色porny蝌蚪| 国产精品乱人伦中文| 国产精品资源在线看| 精品国产凹凸成av人导航| 日av在线不卡| 欧美一级欧美一级在线播放| 亚洲不卡在线观看| 欧美影院午夜播放| 亚洲日本电影在线| 91网站视频在线观看| 中文字幕在线一区| www.欧美日韩国产在线| 国产人成亚洲第一网站在线播放 |