日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 编程:如何提高性能?(简单总结篇)

發布時間:2023/12/10 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 编程:如何提高性能?(简单总结篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

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

本文轉自國內 ITOM 行業領軍企業 OneAPM Cloud Insight(一款能夠優雅監控多種操作系統、數據庫、中間件、云主機的解決方案)美女工程師陳永梅簡書。

開發者在編程中除了要有編程規范,還要注意性能哦,今天就工作中遇到的一些問題進行了一個簡單總結,希望攻城獅來批評指正。

作為一個QA,從質量管理方面得到的認識:

  • 一行代碼能解決的問題 盡量不要使用多行,代碼行數越多 維護成本越高,出現缺陷的概率也就越多;
  • 一行代碼編寫可能只需要 30s,發現并優化一行代碼產生的性能問題需要 72h,甚至更多。

不說了,下面就簡單說下實際編程過程中性能相關的問題吧:

1、循環邏輯中減少創建對象次數

例如:

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

應替換為:

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

2、關注循環結構是否存在多次訪問網絡、數據庫等操作

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

優化前:

優化后:

3、對象容錯性差

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

如果使用 JSONObject 對象,應先進行存在判斷if(json.contains(“xxx”))

4、對需要緩存的信息進行合理設計

原則:登錄功能要分析哪些是跟用戶密切相關的,如 session 信息,哪些是跟業務系統屬性相關的,如系統配置資源信息。后者則應當進行緩存處理,避免每次登錄都構建獲取信息。

5、業務邏輯的執行順序問題

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

如示例:靜態資源應盡量后置,建議大家在業務邏輯梳理時先否定再肯定,也就是先列不滿足業務的條件。

優化前:

優化后:

6、Try…catch 相對消耗性能比較嚴重,盡量減少使用頻率,使用中盡量擴大作用范圍,禁止出現在循環等操作中。

7、創建類似數組等可以設定大小的對象,應盡可能指定大小,最大限度減少內存空間的浪費。

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

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

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

11、方法大小不要超過80行,方法棧太深容易導致內存溢出;盡量不要出現功能太少的類,類的維護也需要性能開銷。

12、創建復雜對象應使用clone方法,減少構造方法調用的開銷。

13、待續...

Cloud Insight 集監控、管理、計算、協作、可視化于一身的數據管理平臺,幫助所有 IT 公司,減少在系統監控上的人力和時間成本投入,讓運維工作更加高效、簡單。 本文轉自 OneAPM 官方博客

轉載于:https://my.oschina.net/oneapmofficial/blog/626404

總結

以上是生活随笔為你收集整理的Java 编程:如何提高性能?(简单总结篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。