[發(fā)明專利]內(nèi)存泄露的處理方法、裝置及存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 202010500067.7 | 申請日: | 2020-06-04 |
| 公開(公告)號: | CN111638990B | 公開(公告)日: | 2023-04-28 |
| 發(fā)明(設(shè)計)人: | 劉明栓 | 申請(專利權(quán))人: | 網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07 |
| 代理公司: | 北京超成律師事務(wù)所 11646 | 代理人: | 劉靜 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存 泄露 處理 方法 裝置 存儲 介質(zhì) | ||
本申請?zhí)峁┝艘环N內(nèi)存泄露的處理方法、裝置及存儲介質(zhì),該方法包括:服務(wù)器獲取目標游戲的檢測腳本,根據(jù)檢測腳本,對目標游戲的程序文件進行內(nèi)存泄露檢測,得到檢測結(jié)果,將檢測結(jié)果發(fā)送給終端設(shè)備,終端設(shè)備根據(jù)檢測結(jié)果,從第一對象和至少一個第二對象中,確定待解除引用關(guān)系的一組對象,并解除目標游戲程序文件中該兩個對象之間的引用關(guān)系。本方案采用檢測腳本對程序文件進行內(nèi)存泄露檢測,得到檢測結(jié)果,根據(jù)檢測結(jié)果解除程序文件中至少一組對象之間的引用關(guān)系,實現(xiàn)了對程序文件的修改,提高了內(nèi)存泄露的處理效率和準確度,同時節(jié)省了人力成本。
技術(shù)領(lǐng)域
本申請涉及計算機技術(shù)領(lǐng)域,具體而言,涉及一種內(nèi)存泄露的處理方法、裝置及存儲介質(zhì)。
背景技術(shù)
在游戲開發(fā)過程中,開發(fā)人員編寫的程序文件常常會存在內(nèi)存泄露的問題,當游戲上線后,會出現(xiàn)由于內(nèi)存泄露而導(dǎo)致游戲進程停止運行的現(xiàn)象。其中,內(nèi)存泄漏(MemoryLeak)指的是程序中己動態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無法釋放,造成系統(tǒng)內(nèi)存的浪費,導(dǎo)致程序運行速度減慢甚至系統(tǒng)崩潰等嚴重后果。
現(xiàn)有技術(shù)中,通常通過壓力測試來檢測是否存在內(nèi)存泄露,具體地,采用大量的模擬客戶端來登錄游戲、玩游戲以及退出登錄游戲,來觀測系統(tǒng)內(nèi)存的增長情況,若系統(tǒng)內(nèi)存持續(xù)增長,則確定該游戲的程序文件存在內(nèi)存泄露的問題,然后需要人工排查該程序文件存在內(nèi)存泄露的原因,從而開發(fā)人員可以對該程序文件進行修改,以解決內(nèi)存泄露的問題。
然而,采用壓力測試的方式實施起來比較繁瑣、實施流程較長,并且人工排查內(nèi)存泄露的效率較低。
發(fā)明內(nèi)容
有鑒于此,本申請的目的在于提供一種內(nèi)存泄露的處理方法、裝置及存儲介質(zhì),以解決現(xiàn)有技術(shù)中處理內(nèi)存泄露時效率較低、準確度不高的問題。
第一方面,本申請?zhí)峁┮环N內(nèi)存泄露的處理方法,應(yīng)用于服務(wù)器,包括:
獲取目標游戲的檢測腳本,所述檢測腳本是根據(jù)內(nèi)存泄露的影響因素確定的;
根據(jù)所述檢測腳本,對所述目標游戲的程序文件進行內(nèi)存泄露檢測,得到檢測結(jié)果,所述檢測結(jié)果用于表示存在內(nèi)存泄露的第一對象以及引用所述第一對象的至少一個第二對象之間的引用關(guān)系;
將所述檢測結(jié)果發(fā)送給終端設(shè)備,所述終端設(shè)備用于根據(jù)所述檢測結(jié)果,解除所述程序文件中一組對象之間的引用關(guān)系。
在一些實施例中,所述內(nèi)存泄露的影響因素包括以下中的至少一個:
生命周期小于預(yù)設(shè)值的對象被生命周期大于所述預(yù)設(shè)值的對象引用;
循環(huán)引用中的任一對象定義了銷毀操作;
存在循環(huán)引用且垃圾回收功能關(guān)閉。
在一些實施例中,所述根據(jù)所述檢測腳本,對所述目標游戲的程序文件進行內(nèi)存泄露檢測,得到檢測結(jié)果之前,還包括:
向與所述服務(wù)器連接的測試終端發(fā)送第一請求,所述第一請求用于請求斷開與所述服務(wù)器之間的網(wǎng)絡(luò)連接。
在一些實施例中,所述根據(jù)所述檢測腳本,對所述目標游戲的程序文件進行內(nèi)存泄露檢測,得到檢測結(jié)果,包括:
獲取所述程序文件對應(yīng)的至少一個未釋放對象,并從所述至少一個未釋放對象中確定所述第一對象;
通過運行所述檢測腳本,對所述程序文件進行內(nèi)存泄露檢測,確定所述至少一個第二對象,以及所述第一對象與所述至少一個第二對象之間的引用關(guān)系;
根據(jù)所述引用關(guān)系,繪制得到所述第一對象和所述至少一個第二對象的引用關(guān)系圖,所述檢測結(jié)果為所述引用關(guān)系圖。
在一些實施例中,所述向與所述服務(wù)器連接的測試終端發(fā)送第一請求,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司,未經(jīng)網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010500067.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





