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

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

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

添加客服微信 歡迎咨詢測(cè)試工具和測(cè)試服務(wù)

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

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

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

方案咨詢

×
提交信息

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

您的信息已成功提交!

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