來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-05-01 10:32:07
技巧1:使用分析器
分析器提供了任何其他工具無法提供的功能,從而能夠深入檢查你的應用。如果你的應用已經(jīng)有一年多時間沒有被分析過了,那么它肯定會有大塊大塊的低效代碼,潛伏在某個黑暗的角落。市面上有許多不同的或免費或商業(yè)的分析器。對于CPU分析,我最喜歡的是JProfiler,因為它足夠強大能分析出大多數(shù)問題,同時易于設置,尤其當你使用它內(nèi)建的設置向?qū)У臅r候。而診斷內(nèi)存問題時,我最親睞的工具是Eclipse Memory Analyzer,因為它使用的是記錄在磁盤上的索引,而不是把整個堆的快照放到內(nèi)存中。
通常來說,隱藏著的易耗盡CPU的代碼包括低效的hashCode()或者equals()方法(在卷動JTable時以及使用Java collection類時,它們會被調(diào)用上百萬次),以及一些出人意料的出自Sun之手的低效類,比如SimpleDateFormat。
分析器可能會明顯地讓你的應用變得很慢,所以你一定要在測試環(huán)境中使用它。
技巧2:監(jiān)控數(shù)據(jù)庫使用狀況
分析器除了可以顯示你的應用過度占用CPU時鐘的細節(jié),它們也可以對你的應用在哪些地方長時間做了數(shù)據(jù)庫的操作給出提示。但更好的用來監(jiān)控數(shù)據(jù)使用的工具,是像Proactive DBA或者HP Diagnostics,或者任何其他來自于你的數(shù)據(jù)庫產(chǎn)品廠商的工具。這些工具可以告訴你,哪些代碼做了長時間的SQL調(diào)用,以及哪些代碼在短時間內(nèi)對同一行做了多次調(diào)用。來自數(shù)據(jù)庫廠商的工具還可以幫助發(fā)現(xiàn)那些阻塞了其他調(diào)用的查詢;雖然在我的經(jīng)驗里,這樣的阻塞問題基本不過是些簡單的、低效的SQL用法。
我寫了一個新的工具叫做jdbcGrabber,它可以讓你以可視化的形式描述出哪些代碼正在訪問哪些數(shù)據(jù)表。通過這種可視化呈現(xiàn),你可以很容易發(fā)現(xiàn)那些多次訪問數(shù)據(jù)庫中不同部分信息的代碼,從而將其調(diào)整為一次合并的請求。
技巧3:構建和部署自動化
許多遺留系統(tǒng)缺乏一種完全自動化的方式,來構建它們的代碼,更不用說自動部署了。自動化構建和部署對于提高遺留系統(tǒng)開發(fā)者的效率來說,是一種簡單直接而又低風險的方式,而且通常不需要修改代碼。
沒有自動化的構建和部署過程,新的開發(fā)者不得不重新發(fā)明輪子,跟那些前輩們早就斗爭過的同樣問題重新來斗,而且每次重復的部署問題發(fā)生,開發(fā)者都會發(fā)明出不同的解決方案。
雖然Maven是一款卓越的而且使用廣泛的構建工具,但它對你的源碼樹結構以及庫依賴有著固執(zhí)的要求,所以把它用在遺留應用中會有點困難。但足夠優(yōu)秀的Ant應該更易于使用,因為它處理起遺留代碼結構更加靈活,也更容易部分采用,而不是全盤采用。
招生熱線: 4008-0731-86 / 0731-82186801
學校地址: 長沙市天心區(qū)團結路6號
Copyright © 2006 | 湖南大計信息科技有限公司 版權所有
湘ICP備14017520號-3