代码质量的几点新思考
1、將代碼合理的分塊。HotSpot,即Hot Spot,“熱點(diǎn)”。顧名思義,同其他java虛擬機(jī)相比,其最特色的強(qiáng)大功能就是熱點(diǎn)代碼探測(cè)技術(shù)。
? ? ? ? 什么是熱點(diǎn)代碼探測(cè)?人體熱成像知道吧,比如心臟在人體熱成像的位置中屬于熱的地方之一;一個(gè)項(xiàng)目里的代碼也是一樣,不同位置的代碼執(zhí)行頻率不一樣,執(zhí)行頻率高的就是“熱點(diǎn)”。當(dāng)HotSpot虛擬機(jī)探測(cè)出熱點(diǎn)代碼后,會(huì)對(duì)之進(jìn)行再編譯,再編譯會(huì)大幅度地提升代碼的性能。
? ? ? ?究竟是在多久的時(shí)間內(nèi)達(dá)到多少次才算是被再編譯的“熱點(diǎn)”代碼,這個(gè)有機(jī)會(huì)咱仔細(xì)測(cè)測(cè)看。
? ? ? ?在寫代碼時(shí),特別注意的是,在一個(gè)方法中,如果不同部分的代碼段執(zhí)行次數(shù)差異很大,這時(shí)候最好進(jìn)行合理的代碼分塊——一個(gè)方法分成多個(gè)方法。例如,原來(lái)的代碼中有普通代碼和循環(huán)代碼塊,當(dāng)循環(huán)執(zhí)行的次數(shù)為N時(shí),那么這個(gè)方法中的代碼執(zhí)行熱度比為,普通代碼:循環(huán)代碼 = 1:N。如果你不對(duì)代碼進(jìn)行合理的拆分,HotSpot虛擬機(jī)會(huì)按照普通代碼的執(zhí)行頻數(shù)來(lái)對(duì)待循環(huán)代碼。這個(gè)時(shí)候代碼性能顯然是有提升空間的。筆者在一次Lucene搜索的時(shí)候,代碼中的循環(huán)次數(shù)高達(dá)10萬(wàn)次,不合理拆分和合理拆分的執(zhí)行時(shí)間比超過(guò)了10:1,也就是說(shuō)代碼拆分合理的話,性能提升了幾十倍。
? ? ? ? 2、明確業(yè)務(wù)主干、簡(jiǎn)化分支——方法調(diào)用主鏈,盡量細(xì)而不要太粗。如果業(yè)務(wù)主干不清晰,代碼的可讀性、可維護(hù)性就會(huì)很差。實(shí)現(xiàn)某項(xiàng)業(yè)務(wù)的時(shí)候,我們最好有一個(gè)基本的模型在腦海中,或者說(shuō)要遵守業(yè)務(wù)主干明確、分支簡(jiǎn)化的原則。常常遇到這樣的代碼,圍繞主干衍生出的分支代碼嵌套較深,這就違背了分支簡(jiǎn)化的原則,同樣會(huì)使代碼可維護(hù)性大打折扣。
? ? ? ? 3、面相對(duì)象的思想。面向?qū)ο蟮乃枷?#xff0c;在代碼中有兩種體現(xiàn)維度,第一種就是編程語(yǔ)言里的面向?qū)ο笏枷?#xff0c;第二種就是代碼順序及空行的使用,我這里就是強(qiáng)調(diào)第二種。例如,如果有一個(gè)pojo,它是一個(gè)復(fù)合對(duì)象,現(xiàn)有一大段set操作,那么這段set操作最好按照復(fù)合對(duì)象所包含的子對(duì)象依次寫出,而不是子對(duì)象的set操作交替執(zhí)行。一段代碼完成某項(xiàng)基本操作的時(shí)候,最好進(jìn)行一次換行,做好注釋。
轉(zhuǎn)載于:https://www.cnblogs.com/InformationGod/p/9256716.html
總結(jié)
以上是生活随笔為你收集整理的代码质量的几点新思考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++学习(35)
- 下一篇: SGU 275. To xor or n