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