版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
附錄D性“本附錄由JoeSharp投稿,并獲得他的同意在這兒。請聯(lián)”(Steve的《Aboutperformance》本附錄的就是指導大家尋找和優(yōu)化“需要完善的那一部分50%的時間都花在約4%的代碼量上。在僅一個工作小時Knuth在編程界有一句名言(Prematureevil難理解和操控,并需更大的精力進行。longstart=//longtime=System.currentTimeMillis()-利用System.out.println(),讓一種不常用到的方法將累積時間打印到控制臺窗口。(Staticboolean)打開或關閉計時,使代碼能放心留在最終的程序里,這樣任何時候都可以拿來應急。盡管還可以選用更復雜的評測,但若僅僅為了量度一個特些系統(tǒng)的時間精度低于1毫秒(WindowsPC,所以需要重復n次,再將總時間除以n,獲得準確的時間。JDK性能評測JDK配套提供了一個內(nèi)建的評測程序能花在每個例程上的時間并將評測結(jié)果寫入一個文件。不幸的是,JDK評測器并不穩(wěn)定。它在JDK1.1.1中能正常為運行評測程序,請在調(diào)用Java解釋器的未優(yōu)化版本時加上-profjava_g-prof或加上一個程序片(Appletjava_g-profsun.applet.AppletViewer理解評測程序的輸出信息并不容易。事實上,在JDK1.0中,它居然將方法名稱30字符。所以可能無法區(qū)分出某些方法。然而,若您用的平臺確實能支持-prof選項,那么可試試VladimirBulatov的“HyperPorf”[3]或者GregWhite的Web站點的??汀C庥绊?。規(guī)以及依賴Java語言。常規(guī)通常,一個有效的提速方法是用更現(xiàn)實的方式重新定義程序。例如,在《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地址,可到自己的機器上運行它們。1.Java程序關鍵部分執(zhí)行速度的一些常規(guī)操作建議(注意對比修改前后的。將...修改成...接口抽象類(只需一個父時)1.22.7致知道尺寸)980次。參考“重復利用對(下一節(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)里重復利用它的時候。通過在每次循環(huán)里新建一個字串緩沖,可節(jié)省980(如前所述ubtring()的關系,所以Stringoknizr會造成較大的開銷?!鐾剑涸贘DK10倍。經(jīng)9803100例如,不要在自己的paint()方法中新建一個Font對象。相反,應將其成實見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”類已針對性能進行了優(yōu)化。■造型和實例:造型會耗去2到200個單位的賦值時間。開銷更大的甚至要求上■圖形:利用剪切技術(shù),減少在repaint()中的工作量;倍增緩沖區(qū),提高接收速及來自Sun的“PerformingAnimation”是兩個很好的。請記著使用最貼切的命令。例如,為根據(jù)一系列點畫一個多邊形,和drawLine()相比,drawPolygon()APIJavaAPI的類,因為它們本身已針對機器的性能進行了優(yōu)化。這是用Java難于達到的。比如在任意長度的一個數(shù)組時,■替換API類:有些時候,API類提供了比我們希望的功能,相應的執(zhí)行時Vector(矢量)替換成更快的動態(tài)對象數(shù)組?!鰧⒅貜偷某?shù)計算移至關鍵循環(huán)之外——比如計算固定長度緩沖區(qū)的staticfinal(靜態(tài)最終)javac的優(yōu)化選項:-Ostatic,finalprivate方法,從而0——這使用了一個特殊的JVM運行于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年。《WritingEfficientPrograms(編寫有效的程序BentleyPrenticeHall1982年。特別參考p.110和p.145-151。《MoreProgrammingPearls(編程拾貝第二版。作者:Bentley?!癆ssociationforComputingMachinery”,19982月?!禤rogrammingPearls(編程拾貝作者eBentleyAddison-Wesley1989年第2部分強調(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣雙方合同模板
- 鮮花叫賣委托協(xié)議
- 2025版旋挖鉆機操作人員技能提升勞務合同3篇
- 2025版無子女離婚協(xié)議書:全面保障子女權(quán)益與財產(chǎn)分配3篇
- 2025版智慧醫(yī)療事業(yè)聘用合同3篇
- 2025年度個人與企業(yè)農(nóng)產(chǎn)品收購合同3篇
- 2025年全球及中國用于醫(yī)療行業(yè)的超透鏡行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球智慧變電站運維系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國5C快充電池行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年度個人住房借款合同范本(專業(yè)版)
- 醫(yī)院急診醫(yī)學小講課課件:急診呼吸衰竭的處理
- 腸梗阻導管在臨床中的使用及護理課件
- 調(diào)料廠工作管理制度
- 2023年MRI技術(shù)操作規(guī)范
- 小學英語單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
- GB/T 15114-2023鋁合金壓鑄件
- 三相分離器原理及操作
- 貨物驗收單表格模板
- 600字A4標準作文紙
- GB/T 18015.2-2007數(shù)字通信用對絞或星絞多芯對稱電纜第2部分:水平層布線電纜分規(guī)范
評論
0/150
提交評論