国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 編程:如何提高性能?(簡單總結(jié)篇)

fuchenxuan / 2359人閱讀

摘要:開發(fā)者在編程中除了要有編程規(guī)范,還要注意性能哦,今天就工作中遇到的一些問題進(jìn)行了一個(gè)簡單總結(jié),希望攻城獅來批評(píng)指正。

開發(fā)者在編程中除了要有編程規(guī)范,還要注意性能,在 Java 編程中有什么提高性能的好辦法呢?

本文轉(zhuǎn)自國內(nèi) ITOM 行業(yè)領(lǐng)軍企業(yè) OneAPM Cloud Insight(一款能夠優(yōu)雅監(jiān)控多種操作系統(tǒng)、數(shù)據(jù)庫、中間件、云主機(jī)的解決方案)美女工程師陳永梅簡書。

開發(fā)者在編程中除了要有編程規(guī)范,還要注意性能哦,今天就工作中遇到的一些問題進(jìn)行了一個(gè)簡單總結(jié),希望攻城獅來批評(píng)指正。

作為一個(gè)QA,從質(zhì)量管理方面得到的認(rèn)識(shí):

一行代碼能解決的問題 盡量不要使用多行,代碼行數(shù)越多 維護(hù)成本越高,出現(xiàn)缺陷的概率也就越多;

一行代碼編寫可能只需要 30s,發(fā)現(xiàn)并優(yōu)化一行代碼產(chǎn)生的性能問題需要 72h,甚至更多。

不說了,下面就簡單說下實(shí)際編程過程中性能相關(guān)的問題吧:

1、循環(huán)邏輯中減少創(chuàng)建對(duì)象次數(shù)

例如:

for(int i = 0;i < list.size; i ++) {
…
}

應(yīng)替換為:

for(int i = 0,int len = list.size();i < len; i ++) {
…
}

2、關(guān)注循環(huán)結(jié)構(gòu)是否存在多次訪問網(wǎng)絡(luò)、數(shù)據(jù)庫等操作

原則:能夠一次性查詢完成的 盡量避免多次查詢。

優(yōu)化前:

優(yōu)化后:

3、對(duì)象容錯(cuò)性差

原則:參數(shù)傳遞過程中不要直接轉(zhuǎn)換使用 JSONObject 這種對(duì)象,如果取值不存在該方法會(huì)報(bào)異常導(dǎo)致程序中止,盡量轉(zhuǎn)為 JavaBean 或 Map;否則應(yīng)先判斷取的值是否存在。最好以 JavaBean 封裝接收參數(shù),并對(duì)參數(shù)進(jìn)行初步較驗(yàn),不能將數(shù)據(jù)完整性交給前端處理。

如果使用 JSONObject 對(duì)象,應(yīng)先進(jìn)行存在判斷if(json.contains(“xxx”))

4、對(duì)需要緩存的信息進(jìn)行合理設(shè)計(jì)

原則:登錄功能要分析哪些是跟用戶密切相關(guān)的,如 session 信息,哪些是跟業(yè)務(wù)系統(tǒng)屬性相關(guān)的,如系統(tǒng)配置資源信息。后者則應(yīng)當(dāng)進(jìn)行緩存處理,避免每次登錄都構(gòu)建獲取信息。

5、業(yè)務(wù)邏輯的執(zhí)行順序問題

原則:在進(jìn)行邏輯判斷的過程中,盡量使復(fù)雜操作延遲執(zhí)行,不要提前執(zhí)行;如登錄操作,只有登錄成功后才做相關(guān)資源加載、查詢操作;

如示例:靜態(tài)資源應(yīng)盡量后置,建議大家在業(yè)務(wù)邏輯梳理時(shí)先否定再肯定,也就是先列不滿足業(yè)務(wù)的條件。

優(yōu)化前:

優(yōu)化后:

6、Try…catch 相對(duì)消耗性能比較嚴(yán)重,盡量減少使用頻率,使用中盡量擴(kuò)大作用范圍,禁止出現(xiàn)在循環(huán)等操作中。

7、創(chuàng)建類似數(shù)組等可以設(shè)定大小的對(duì)象,應(yīng)盡可能指定大小,最大限度減少內(nèi)存空間的浪費(fèi)。

8、HashMap 的讀取遍歷使用 entry,而不是先取 key 集合,再取值。

9、在方法中創(chuàng)建的對(duì)象最好在使用完畢后將引用指向 null,利于 GC 垃圾回收。

10、數(shù)組復(fù)制使用 system.arraycopy(),減少使用創(chuàng)建新數(shù)組賦值的方法。

11、方法大小不要超過80行,方法棧太深容易導(dǎo)致內(nèi)存溢出;盡量不要出現(xiàn)功能太少的類,類的維護(hù)也需要性能開銷。

12、創(chuàng)建復(fù)雜對(duì)象應(yīng)使用clone方法,減少構(gòu)造方法調(diào)用的開銷。

13、待續(xù)...

Cloud Insight 集監(jiān)控、管理、計(jì)算、協(xié)作、可視化于一身的數(shù)據(jù)管理平臺(tái),幫助所有 IT 公司,減少在系統(tǒng)監(jiān)控上的人力和時(shí)間成本投入,讓運(yùn)維工作更加高效、簡單。
本文轉(zhuǎn)自 OneAPM 官方博客

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/65553.html

相關(guān)文章

  • 后臺(tái)開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評(píng)論0 收藏0
  • 后臺(tái)開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    xfee 評(píng)論0 收藏0
  • 后臺(tái)開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    makeFoxPlay 評(píng)論0 收藏0
  • 后端知識(shí)- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關(guān)系如下被人忽視的面向?qū)ο蟮牧笤瓌t后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規(guī)劃。 Java多線程干貨系列—(四)volatile關(guān)鍵字| 掘金技術(shù)征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關(guān)鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關(guān)鍵字,volatile這個(gè)關(guān)鍵字可能...

    Youngdze 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<