![java編程思想版-附錄性能_第1頁](http://file4.renrendoc.com/view/243eef802f777bbcb1ba7cccfa88ae3b/243eef802f777bbcb1ba7cccfa88ae3b1.gif)
![java編程思想版-附錄性能_第2頁](http://file4.renrendoc.com/view/243eef802f777bbcb1ba7cccfa88ae3b/243eef802f777bbcb1ba7cccfa88ae3b2.gif)
![java編程思想版-附錄性能_第3頁](http://file4.renrendoc.com/view/243eef802f777bbcb1ba7cccfa88ae3b/243eef802f777bbcb1ba7cccfa88ae3b3.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
附錄D性“本附錄由JoeSharp投稿,并獲得他的同意在這兒。請聯(lián)”(Steve的《Aboutperformance》本附錄的就是指導(dǎo)大家尋找和優(yōu)化“需要完善的那一部分50%的時間都花在約4%的代碼量上。在僅一個工作小時Knuth在編程界有一句名言(Prematureevil難理解和操控,并需更大的精力進(jìn)行。longstart=//longtime=System.currentTimeMillis()-利用System.out.println(),讓一種不常用到的方法將累積時間打印到控制臺窗口。(Staticboolean)打開或關(guān)閉計(jì)時,使代碼能放心留在最終的程序里,這樣任何時候都可以拿來應(yīng)急。盡管還可以選用更復(fù)雜的評測,但若僅僅為了量度一個特些系統(tǒng)的時間精度低于1毫秒(WindowsPC,所以需要重復(fù)n次,再將總時間除以n,獲得準(zhǔn)確的時間。JDK性能評測JDK配套提供了一個內(nèi)建的評測程序能花在每個例程上的時間并將評測結(jié)果寫入一個文件。不幸的是,JDK評測器并不穩(wěn)定。它在JDK1.1.1中能正常為運(yùn)行評測程序,請?jiān)谡{(diào)用Java解釋器的未優(yōu)化版本時加上-profjava_g-prof或加上一個程序片(Appletjava_g-profsun.applet.AppletViewer理解評測程序的輸出信息并不容易。事實(shí)上,在JDK1.0中,它居然將方法名稱30字符。所以可能無法區(qū)分出某些方法。然而,若您用的平臺確實(shí)能支持-prof選項(xiàng),那么可試試VladimirBulatov的“HyperPorf”[3]或者GregWhite的Web站點(diǎn)的常客。免影響。規(guī)以及依賴Java語言。常規(guī)通常,一個有效的提速方法是用更現(xiàn)實(shí)的方式重新定義程序。例如,在《ProgrammingPearls(編程拾貝)一書中[14],Bentley利用了一段小說數(shù)據(jù)描寫,它可以生成速度非???、而且非常精簡的拼寫檢查器,從而介紹了DougMcIlroy對英語語言的表述。除此以外,與其他方法相比,更好的算法也許能帶的詳情,請參考本附錄末尾的“一般書籍”本地賦值i=n;1.0this.i=n;int增值i++;1.5byte增值b++;2.0short增值s++;2.0float增值f++;2.0doubled2.0空循環(huán)while(true)n++;2.0(x<0)xx2.2算術(shù)調(diào)用Math.abs(x);2.5數(shù)組賦值a[0]=n;2.7longl++;functthrow或catch異常try{throwe或catch(e同步方法調(diào)用synehod();newObject();newint[10通過自己的系統(tǒng)(如我的Pentium200Pro,Netscape3JDK1.1.5,這些相對Web地址,可到自己的機(jī)器上運(yùn)行它們。1.Java程序關(guān)鍵部分執(zhí)行速度的一些常規(guī)操作建議(注意對比修改前后的。將...修改成...接口抽象類(只需一個父時)1.22.7致知道尺寸)980次。參考“重復(fù)利用對(下一節(jié)、VanWyk[12]p.87以及Bentley[15]p.81x/2(2的任意次冪)X>>2(2的任意次冪)t是字串變量:System.out.println("heading"+s+"trailer"+上述語句要求新建一個Stringuf(toString循環(huán)里重復(fù)利用它的時候。通過在每次循環(huán)里新建一個字串緩沖,可節(jié)省980(如前所述ubtring()的關(guān)系,所以Stringoknizr會造成較大的開銷。■同步:在JDK10倍。經(jīng)9803100例如,不要在自己的paint()方法中新建一個Font對象。相反,應(yīng)將其成實(shí)見Bentleyp.81[15]。(Hashtable)及特別消耗系統(tǒng)資源的同步處理(570單位的賦值時間JDK庫程序配合,從而改善常規(guī)散列表的性能。注意Java1.2集合庫的散列映射■方法內(nèi)嵌:只有在方法屬于final(最終、private()或static(靜態(tài))的JDK1.0I/OreadFully()這樣Java1.1的“reader”和“writer”類已針對性能進(jìn)行了優(yōu)化?!鲈煨秃蛯?shí)例:造型會耗去2到200個單位的賦值時間。開銷更大的甚至要求上■圖形:利用剪切技術(shù),減少在repaint()中的工作量;倍增緩沖區(qū),提高接收速及來自Sun的“PerformingAnimation”是兩個很好的。請記著使用最貼切的命令。例如,為根據(jù)一系列點(diǎn)畫一個多邊形,和drawLine()相比,drawPolygon()APIJavaAPI的類,因?yàn)樗鼈儽旧硪厌槍C(jī)器的性能進(jìn)行了優(yōu)化。這是用Java難于達(dá)到的。比如在任意長度的一個數(shù)組時,■替換API類:有些時候,API類提供了比我們希望的功能,相應(yīng)的執(zhí)行時Vector(矢量)替換成更快的動態(tài)對象數(shù)組。■將重復(fù)的常數(shù)計(jì)算移至關(guān)鍵循環(huán)之外——比如計(jì)算固定長度緩沖區(qū)的staticfinal(靜態(tài)最終)javac的優(yōu)化選項(xiàng):-Ostatic,finalprivate方法,從而0——這使用了一個特殊的JVM運(yùn)行于PentiumPro200,Netscape3.0,JDK1.1.4的MicroBen Sun的Java文檔頁——JDKJava解釋器 VladimirBulatovGregWhite的 對于Java代碼的優(yōu)化,最出色的參考資源是 athanHardwick的“JavaOptimization”:“Java以及“JavaMicrobenarks”(有一個45秒鐘的評測過程“MakeJavafast:Optimize!Howtogetthegreatestperformanceoutofyourcodethroughlow-leveloptimizationsinJava”(讓Java更快:優(yōu)化!如何通過在Java中的低級優(yōu)化,使代碼發(fā)揮最出色的性能。作者:DougBell。: (含一個全面的性能評測程序片,有詳盡注釋“JavaOptimizationResources”(Java優(yōu)化資源“OptimizingJavaforSpeed”(優(yōu)化Java,提高速度“AnEmpiricalStudyofFORTRANPrograms”(FORTRAN程序?qū)崙?zhàn)解析。作33““BuildingHigh-PerformanceApplicationsandServersinJava:AnExperiential以及SandeepKSinghalIBMT.JWatsonResearchCenter,IBMSoftwareSolutions。Java《AdvancedJava,Idioms,Pitfalls,Styles,andProgrammingTipsChrisLaffra。PrenticeHall1997年(Java1.0。第11章第20小節(jié)?!禗ataStructuresandCPrograms(數(shù)據(jù)結(jié)構(gòu)和C程序。作者:J.VanWyk。Addison-Wesly1998年?!禬ritingEfficientPrograms(編寫有效的程序BentleyPrenticeHall1982年。特別參考p.110和p.145-151?!禡oreProgrammingPearls(編程拾貝第二版。作者:Bentley?!癆ssociationforComputingMachinery”,19982月?!禤rogrammingPearls(編程拾貝作者eBentleyAddison-Wesley1989年第2部分強(qiáng)調(diào)了常規(guī)的性能改善問題。[16]《CodeComplete:APracticalHandbookofSoftwareConstruction(SteveMcConnell。1993年,第9章?!禣bject-OrientedSystemD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年代理銷售合同協(xié)議簡單版(4篇)
- 2025年個人軟件合同樣本(2篇)
- 2025年九年級初三第二學(xué)期班主任工作小結(jié)模版(二篇)
- 2025年企業(yè)勞資專項(xiàng)法律服務(wù)合同經(jīng)典版(2篇)
- 2025年人教版二年級上語文教學(xué)工作總結(jié)模版(三篇)
- 2025年二手商鋪?zhàn)赓U合同標(biāo)準(zhǔn)版本(4篇)
- 2025年三方月嫂保姆合同(三篇)
- 辦公室基礎(chǔ)裝修合作協(xié)議
- 液態(tài)堿液罐車配送合同
- 古建筑修繕服務(wù)合同
- 幼兒園設(shè)施設(shè)備安全教育
- 廢舊保溫棉處置合同范例
- 《軌道交通工程盾構(gòu)施工技術(shù)》 課件 項(xiàng)目5 盾構(gòu)隧道防水施工
- 2024年數(shù)據(jù)編織價值評估指南白皮書-Aloudata
- 四川省算力基礎(chǔ)設(shè)施高質(zhì)量發(fā)展行動方案(2024-2027年)
- 托育園老師培訓(xùn)
- 人教版八年級英語上冊Unit1-10完形填空閱讀理解專項(xiàng)訓(xùn)練
- 脊柱外科護(hù)理進(jìn)修心得
- 4.1中國特色社會主義進(jìn)入新時代+課件-2024-2025學(xué)年高中政治統(tǒng)編版必修一中國特色社會主義
- 護(hù)理工作中的人文關(guān)懷
- 完整液壓系統(tǒng)課件
評論
0/150
提交評論