国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

改善Java遺留系統(tǒng)的8個(gè)技巧

來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-05-01 10:32:07

      技巧1:使用分析器

      分析器提供了任何其他工具無法提供的功能,從而能夠深入檢查你的應(yīng)用。如果你的應(yīng)用已經(jīng)有一年多時(shí)間沒有被分析過了,那么它肯定會有大塊大塊的低效代碼,潛伏在某個(gè)黑暗的角落。市面上有許多不同的或免費(fèi)或商業(yè)的分析器。對于CPU分析,我最喜歡的是JProfiler,因?yàn)樗銐驈?qiáng)大能分析出大多數(shù)問題,同時(shí)易于設(shè)置,尤其當(dāng)你使用它內(nèi)建的設(shè)置向?qū)У臅r(shí)候。而診斷內(nèi)存問題時(shí),我最親睞的工具是Eclipse Memory Analyzer,因?yàn)樗褂玫氖怯涗浽诖疟P上的索引,而不是把整個(gè)堆的快照放到內(nèi)存中。

      通常來說,隱藏著的易耗盡CPU的代碼包括低效的hashCode()或者equals()方法(在卷動JTable時(shí)以及使用Java collection類時(shí),它們會被調(diào)用上百萬次),以及一些出人意料的出自Sun之手的低效類,比如SimpleDateFormat。

      分析器可能會明顯地讓你的應(yīng)用變得很慢,所以你一定要在測試環(huán)境中使用它。

      技巧2:監(jiān)控?cái)?shù)據(jù)庫使用狀況

      分析器除了可以顯示你的應(yīng)用過度占用CPU時(shí)鐘的細(xì)節(jié),它們也可以對你的應(yīng)用在哪些地方長時(shí)間做了數(shù)據(jù)庫的操作給出提示。但更好的用來監(jiān)控?cái)?shù)據(jù)使用的工具,是像Proactive DBA或者HP Diagnostics,或者任何其他來自于你的數(shù)據(jù)庫產(chǎn)品廠商的工具。這些工具可以告訴你,哪些代碼做了長時(shí)間的SQL調(diào)用,以及哪些代碼在短時(shí)間內(nèi)對同一行做了多次調(diào)用。來自數(shù)據(jù)庫廠商的工具還可以幫助發(fā)現(xiàn)那些阻塞了其他調(diào)用的查詢;雖然在我的經(jīng)驗(yàn)里,這樣的阻塞問題基本不過是些簡單的、低效的SQL用法。

      我寫了一個(gè)新的工具叫做jdbcGrabber,它可以讓你以可視化的形式描述出哪些代碼正在訪問哪些數(shù)據(jù)表。通過這種可視化呈現(xiàn),你可以很容易發(fā)現(xiàn)那些多次訪問數(shù)據(jù)庫中不同部分信息的代碼,從而將其調(diào)整為一次合并的請求。

      技巧3:構(gòu)建和部署自動化

      許多遺留系統(tǒng)缺乏一種完全自動化的方式,來構(gòu)建它們的代碼,更不用說自動部署了。自動化構(gòu)建和部署對于提高遺留系統(tǒng)開發(fā)者的效率來說,是一種簡單直接而又低風(fēng)險(xiǎn)的方式,而且通常不需要修改代碼。

      沒有自動化的構(gòu)建和部署過程,新的開發(fā)者不得不重新發(fā)明輪子,跟那些前輩們早就斗爭過的同樣問題重新來斗,而且每次重復(fù)的部署問題發(fā)生,開發(fā)者都會發(fā)明出不同的解決方案。

      雖然Maven是一款卓越的而且使用廣泛的構(gòu)建工具,但它對你的源碼樹結(jié)構(gòu)以及庫依賴有著固執(zhí)的要求,所以把它用在遺留應(yīng)用中會有點(diǎn)困難。但足夠優(yōu)秀的Ant應(yīng)該更易于使用,因?yàn)樗幚砥疬z留代碼結(jié)構(gòu)更加靈活,也更容易部分采用,而不是全盤采用。

上一篇:怎樣實(shí)現(xiàn)Java遠(yuǎn)程訪問Domino數(shù)據(jù)庫
下一篇:幾道Java EE面試題分享

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長沙市天心區(qū)團(tuán)結(jié)路6號

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號-3

關(guān)注我們
在線咨詢
嘿,我來幫您!
城固县| 大石桥市| 丰顺县| 阿荣旗| 郸城县| 普安县| 徐汇区| 同仁县| 阜平县| 金平| 合江县| 高州市| 德清县| 巫山县| 阿鲁科尔沁旗| 涞源县| 晋中市| 乳山市| 巴楚县| 景洪市| 红桥区| 朝阳县| 鄂伦春自治旗| 福贡县| 汶上县| 洛南县| 井研县| 阜城县| 繁峙县| 镇远县| 五台县| 尉氏县| 洛南县| 兴业县| 龙海市| 平乐县| 尉犁县| 穆棱市| 贵南县| 子长县| 镇江市|