產(chǎn)品體驗中心 下載與支持 產(chǎn)品社區(qū) 合作代理 |  咨詢電話:400-035-7887/021-6072 5088

記一次java程序性能測試優(yōu)化實踐

發(fā)布時間:2020-11-13

某個tomcat的系統(tǒng),java開發(fā)。其中一個功能是,選中其中“一棵樹”,把它的內(nèi)容插入到另外一個完整的“樹”,或者“森林”中。對于在同一層上的相同節(jié)點進行合并,比如樹上的id標識了相同的節(jié)點標記,相同的進行合并,以保持樹的完整性。
 
這個算法執(zhí)行的時間將近120秒才能完成,當節(jié)點比較多的情況下。
如何進行性能測試優(yōu)化?
首先,我們看性能消耗在哪里。
1) 查看單個sql語句的時間有多少。我們發(fā)現(xiàn)執(zhí)行單個sql語句的時間很少,瓶頸應該不是在這里;
2) 查看單個簡單程序的執(zhí)行時間,算法本身也很快,消耗時間并不多;
3) 但是,我們發(fā)現(xiàn),這個操作,執(zhí)行sql語句的次數(shù),有幾百次?。?!
 
再仔細查看程序代碼,使用一個比較復雜的樹,發(fā)現(xiàn)sql語句執(zhí)行的太多了?。。『芏嘌h(huán)中包含了sql語句,并且沒有prepare。
問題的根源在于,我們把數(shù)據(jù)庫當成了內(nèi)存,做存儲和計算來使用,這樣就存在大量的sql語句來訪問數(shù)據(jù)庫。這個算法的問題就在于此。如果把數(shù)據(jù)庫訪問操作改造成內(nèi)存操作,那么會怎么樣?
于是,我們改造了一下,大概2個小時完成,從幾百次sql語句,降低到三次!
執(zhí)行速度,從120秒,降低到2秒!??!
 
回顧一下我們的調優(yōu)過程:
1, 計時。就是分段計算每一段算法所消耗的時間;
2, 分析sql語句執(zhí)行的速度,看是否正常;
3, 分析算法緩慢的原因。
4, 制訂改進的解決方案,并且實施。
5, 重新測試,以檢查性能測試調優(yōu)改進是否達到了目標。
 
推薦閱讀:
 
 
 
 
 
本文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權問題,請權利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號 2003-2024 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測試工具和測試服務

微信客服
問題
反饋
產(chǎn)品
畫冊

掃描二維碼下載澤眾軟件企業(yè)宣傳冊

產(chǎn)品畫冊
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術售前給您解答(產(chǎn)品試用、技術交流、服務咨詢和商務報價)。

您的信息已成功提交!

我們的客服人員稍后會與您聯(lián)系