[發(fā)明專利]基于垃圾回收的內(nèi)存分析優(yōu)化方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201410284405.2 | 申請日: | 2014-06-24 |
| 公開(公告)號: | CN104063245A | 公開(公告)日: | 2014-09-24 |
| 發(fā)明(設計)人: | 尹洪亮 | 申請(專利權(quán))人: | 用友優(yōu)普信息技術(shù)有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京中恒高博知識產(chǎn)權(quán)代理有限公司 11249 | 代理人: | 姜萬林 |
| 地址: | 100094 北京*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 垃圾 回收 內(nèi)存 分析 優(yōu)化 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體地,涉及一種基于垃圾回收的內(nèi)存分析優(yōu)化方法和一種基于垃圾回收的內(nèi)存分析優(yōu)化系統(tǒng)。
背景技術(shù)
現(xiàn)代軟件應用越來越復雜,軟件也日益龐大,在一個龐大的系統(tǒng)中,很難評估內(nèi)存對象的創(chuàng)建和回收對系統(tǒng)性能的具體影響。
在現(xiàn)有技術(shù)中,對內(nèi)存進行分析處理時,需要通過多個不同時間點的內(nèi)存映像,并結(jié)合性能計數(shù)器記錄來分析一段時間內(nèi)內(nèi)存的變化和系統(tǒng)性能記錄之間的關(guān)系。
這種方法的缺點是只能進行粗略估算,不能提供精確的數(shù)據(jù)供科學評估。
因此,需要一種新的基于垃圾回收的內(nèi)存分析優(yōu)化技術(shù),可以在現(xiàn)有的基于垃圾回收的內(nèi)存分析基礎(chǔ)上,充分利用現(xiàn)有代碼完成準確評估每次垃圾回收過程對系統(tǒng)性能產(chǎn)生影響的內(nèi)存分析優(yōu)化,建立現(xiàn)有代碼參與的準確評估每次垃圾回收過程對系統(tǒng)性能產(chǎn)生影響的通用、統(tǒng)一分析優(yōu)化思路。
發(fā)明內(nèi)容
本發(fā)明正是基于上述問題,提出了一種新的基于垃圾回收的內(nèi)存分析優(yōu)化技術(shù),可以在現(xiàn)有的基于垃圾回收的內(nèi)存分析基礎(chǔ)上,充分利用現(xiàn)有代碼完成準確評估每次垃圾回收過程對系統(tǒng)性能產(chǎn)生影響的內(nèi)存分析優(yōu)化,建立現(xiàn)有代碼參與的準確評估每次垃圾回收過程對系統(tǒng)性能產(chǎn)生影響的通用、統(tǒng)一分析優(yōu)化思路。
有鑒于此,本發(fā)明提出了一種基于垃圾回收的內(nèi)存分析優(yōu)化方法,包括:步驟102:將當前托管內(nèi)存的垃圾回收附加到目標進程;步驟104:基于步驟102附加到目標程序的當前托管內(nèi)存的垃圾回收,為該垃圾回收的開始和該垃圾回收的結(jié)束設置斷點;步驟108:在步驟104設置的斷點觸發(fā)時,分析并輸出當前托管內(nèi)存信息。在該技術(shù)方案中,通過為垃圾回收的開始和結(jié)束設置斷點,在斷點觸發(fā)時,收集當前的內(nèi)存對象,即可比對出每一次垃圾回收哪些對象被回收掉了;從而實現(xiàn)不對現(xiàn)有代碼進行修改的情況下,準確評估每次垃圾回收過程對系統(tǒng)性能產(chǎn)生的影響,簡化了內(nèi)存分析優(yōu)化的操作,減少了內(nèi)存分析優(yōu)化的時間。
在上述技術(shù)方案中,優(yōu)選地,在所述步驟104和步驟108之間,還包括:步驟106:在步驟104設置的斷點觸發(fā)時,記錄當前托管內(nèi)存信息;以及,所述步驟108具體包括:在步驟104設置的斷點觸發(fā)時,基于步驟106記錄的當前托管內(nèi)存信息,分析并輸出當前托管內(nèi)存信息。在該技術(shù)方案中,可以記錄并存儲當前托管內(nèi)存信息,為分析并輸出當前托管內(nèi)存信息、以及后期的查詢提供依據(jù)。
在上述技術(shù)方案中,優(yōu)選地,所述步驟102將當前托管內(nèi)存的垃圾回收附加到目標進程的操作,具體包括:步驟202:設置基于當前托管內(nèi)存的垃圾回收的調(diào)試器和性能計數(shù)器;步驟204:將步驟202設置的調(diào)試器附加到目標進程,準備開始調(diào)試,打開步驟202設置的性能計數(shù)器,收集%Time In GC。在該技術(shù)方案中,通過預先設置調(diào)試器和性能計數(shù)器,可以方便當前托管內(nèi)存信息的分析和處理。
在上述技術(shù)方案中,優(yōu)選地,所述步驟104為該垃圾回收的開始和該垃圾回收的結(jié)束設置斷點的操作,具體包括:在GCHeap的SuspendEE和RestartEE方法上設置斷點,這兩個方法對應垃圾回收的開始和結(jié)束。在該技術(shù)方案中,通過設置斷點,對垃圾回收的開始和結(jié)束作標記,使得當前內(nèi)存托管信息的分析處理有據(jù)可尋,且不易出錯。
在上述技術(shù)方案中,優(yōu)選地,所述步驟108分析并輸出當前托管內(nèi)存信息的操作,具體包括:步驟302:對比垃圾回收(即GC)開始前和結(jié)束后的托管內(nèi)存對象,分析哪些對象被頻繁的回收和創(chuàng)建;步驟304:與步驟302同時進行,對比垃圾回收期間性能計數(shù)器中的%Time In GC情況,即可知道哪些對象被頻繁的回收和創(chuàng)建、對內(nèi)存的影響、以及由此產(chǎn)生的CPU影響。在該技術(shù)方案中,通過對比性能計數(shù)器數(shù)據(jù),即可知道CPU中花在GC上的時間,通過連續(xù)分析,即可知道哪一部分對象被頻繁的回收和創(chuàng)建,影響性能了。
根據(jù)本發(fā)明的又一個方面,還提出了一種基于垃圾回收的內(nèi)存分析優(yōu)化系統(tǒng),包括:目標進程附加模塊,用于將當前托管內(nèi)存的垃圾回收附加到目標進程;斷點設置模塊,用于基于所述目標進程附加模塊附加到目標程序的當前托管內(nèi)存的垃圾回收,為該垃圾回收的開始和該垃圾回收的結(jié)束設置斷點;當前托管內(nèi)存信息輸出模塊,用于在所述斷點設置模塊設置的斷點觸發(fā)時,分析并輸出當前托管內(nèi)存信息。在該技術(shù)方案中,通過為垃圾回收的開始和結(jié)束設置斷點,在斷點觸發(fā)時,收集當前的內(nèi)存對象,即可比對出每一次垃圾回收哪些對象被回收掉了;從而實現(xiàn)不對現(xiàn)有代碼進行修改的情況下,準確評估每次垃圾回收過程對系統(tǒng)性能產(chǎn)生的影響,簡化了內(nèi)存分析優(yōu)化的操作,減少了內(nèi)存分析優(yōu)化的時間。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于用友優(yōu)普信息技術(shù)有限公司,未經(jīng)用友優(yōu)普信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410284405.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





