[發明專利]一種獲取手機應用內存快照和內存分配堆棧的方法及裝置在審
| 申請號: | 201710331302.0 | 申請日: | 2017-05-11 |
| 公開(公告)號: | CN107277226A | 公開(公告)日: | 2017-10-20 |
| 發明(設計)人: | 劉馬良;張強;賴炳新;楊明邦;李星;李邦戈 | 申請(專利權)人: | 珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司 |
| 主分類號: | H04M1/725 | 分類號: | H04M1/725;G06F12/02 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司44205 | 代理人: | 俞梁清 |
| 地址: | 519000 廣東省珠*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 獲取 手機 應用 內存 快照 分配 堆棧 方法 裝置 | ||
技術領域
本發明涉及手機應用優化領域,尤其涉及一種獲取手機應用內存快照和內存分配堆棧的方法及裝置。
背景技術
在智能手機行業,隨著手機游戲的市場占有率越來越高,大部分的知名游戲開發公司都在手機游戲開發投入了較多的技術研發。在手機游戲的開發過程中,降低手機游戲的內存占用率一直都是手機應用開發人員較為關心的點之一。若游戲運行過程中占用內存過多,可能會被操作系統認定為異常進程而直接關閉,也可能會因占用過多導致系統內存,使得系統性能降低,從而令游戲體驗下降。
Unity作為一種廣泛應用的手機游戲開發引擎,采用Mono平臺作為其C#虛擬機,且分配釋放內存都使用Mono平臺中的相關接口,因此能夠優化內存占用,從而提升游戲性能。
由于Mono平臺封裝了從操作系統中分配內存的過程,因此手機應用開發人員不能直接獲取Mono平臺分配的內存的信息。鑒于上述原因,手機應用開發人員需要一套內存狀況的監測工具,獲取當前時刻內存中存儲的對象詳情,從而針對占用內存較大的對象或數目眾多的同類對象進行相關優化;以及同時獲取每次分配內存的調用堆棧信息,從而能快速定位某個對象產生的代碼路徑并進行優化。
發明內容
本發明的目的是解決現有技術的不足,提供一種獲取手機應用內存快照和內存分配堆棧的方法及裝置,能夠獲得同時向手機應用開發人員提供指定時刻手機應用的內存快照和內存分配堆棧的直觀信息,從而為手機應用開發人員快速優化手機應用性能提供方便的效果。
為了實現上述目的,本發明采用以下的技術方案:
本發明提出一種獲取手機應用內存快照和內存分配堆棧的方法,用于安卓智能手機中基于Unity引擎開發的程序,步驟如下:
S100)啟動被檢測手機應用,并初始化內存信息元數據表和內存分配堆棧統計表;
S200)查找并監視Unity引擎中分配和回收內存相關的應用程序編程接口;
S300)執行對應的操作,觸發調用該應用程序編程接口,截獲當前的內存分配回收信息;
S400)根據當前的該內存分配回收信息更新該內存信息元數據表和該內存分配堆棧統計表;
S500)若檢測完畢,執行步驟S600,否則返回執行步驟S300;
S600)將該內存信息元數據表和該內存分配堆棧統計表分別保存為內存快照文件和內存分配堆棧統計文件,并導出為外部文件。
在本發明的上述方法中,該內存信息元數據表的內容至少包括內存分配大小、對象類型和當前接口調用堆棧。
在本發明的上述方法中,該內存分配堆棧統計表的內容至少包括內存分配堆棧的內存分配次數和內存分配總大小。
在本發明的上述方法中,該步驟S500通過與外部交互的方式,導出該外部文件。
在本發明的上述方法中,該步驟S600按照內存分配頻度順序,保存該內存分配堆棧統計文件記錄。
本發明還提出一種獲取手機應用內存快照和內存分配堆棧的裝置,用于安卓智能手機中基于Unity引擎開發的程序,其特征在于,包括以下模塊:
啟動模塊,用于啟動被檢測手機應用,并初始化內存信息元數據表和內存分配堆棧統計表;
監視模塊,用于查找并監視Unity引擎中分配和回收內存相關的應用程序編程接口;
截獲模塊,用于在執行對應的操作,觸發調用該應用程序編程接口后,截獲當前的內存分配回收信息;
更新模塊,用于根據當前的該內存分配回收信息更新該內存信息元數據表和該內存分配堆棧統計表;
導出模塊,用于將該內存信息元數據表和該內存分配堆棧統計表分別保存為內存快照文件和內存分配堆棧統計文件,并導出為外部文件。
在本發明的上述裝置中,該導出模塊保存的該內存快照文件至少包括內存分配大小、對象類型和當前接口調用堆棧。
在本發明的上述裝置中,該導出模塊保存的該內存分配堆棧統計文件至少包括內存分配堆棧的內存分配次數和內存分配總大小。
在本發明的上述裝置中,該裝置通過與外部交互的方式,導出該外部文件。
在本發明的上述裝置中,該導出模塊按照內存分配頻度順序,保存該內存分配堆棧統計文件。
本發明還提出了一種計算機可讀介質,包括用于執行該獲取手機應用內存快照和內存分配堆棧方法的指令。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司,未經珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710331302.0/2.html,轉載請聲明來源鉆瓜專利網。





