[發明專利]一種內存處理方法及裝置有效
| 申請號: | 202111501982.9 | 申請日: | 2021-12-09 |
| 公開(公告)號: | CN114185645B | 公開(公告)日: | 2023-08-04 |
| 發明(設計)人: | 季濤 | 申請(專利權)人: | 抖音視界有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F9/50 |
| 代理公司: | 北京中知法苑知識產權代理有限公司 11226 | 代理人: | 李明 |
| 地址: | 100041 北京市石景山區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 處理 方法 裝置 | ||
本公開提供了一種內存處理方法及裝置,該方法響應于目標應用的啟動指令,將用于加速啟動所述目標應用的快照數據加載到虛擬內存中;對所述快照數據進行解析,得到所述快照數據的解析結果;利用所述快照數據的解析結果,啟動所述目標應用;在所述快照數據的解析完成后,針對存儲所述快照數據的虛擬內存,啟用第一內存釋放模式,釋放存儲所述快照數據的虛擬內存,并在釋放存儲所述快照數據的虛擬內存后,立即釋放存儲所述快照數據的物理內存;針對存儲所述目標應用的目標類型數據的虛擬內存,啟用第二內存釋放模式,在釋放存儲所述目標類型數據的虛擬內存后,在到達物理內存釋放的時間節點的情況下,將已被釋放的虛擬內存對應的物理內存釋放。
技術領域
本公開涉及計算機技術領域,具體而言,涉及一種內存處理方法及裝置。
背景技術
Flutter是一種構建用戶界面的工具包,幫助開發者通過一套代碼庫高效構建多平臺的應用,其應用的計算機編程語言為dart語言,dart語言需要運行在dart虛擬機之上,因此,dart虛擬機占用的內存大小直接影響Flutter應用消耗的內存。在一些終端設備上,由于體積、成本等限制,能夠搭載的內存容量較小,而Flutter應用收到dart虛擬機的限制,一些特定用途的內存會被持續占用,即使運行當中不會再次使用到這些被占用的內存,內存的需求量較大,導致上述終端設備可能不足以支撐Flutter應用或終端設備整體的正常運作。
發明內容
本公開實施例至少提供一種內存處理方法及裝置。
第一方面,本公開實施例提供了一種內存處理方法,應用于虛擬機,包括:
響應于目標應用的啟動指令,將用于加速啟動所述目標應用的快照數據加載到虛擬內存中;
對所述快照數據進行解析,得到所述快照數據的解析結果;
利用所述快照數據的解析結果,啟動所述目標應用;
在所述快照數據的解析完成后,針對存儲所述快照數據的虛擬內存,啟用第一內存釋放模式,釋放存儲所述快照數據的虛擬內存,并在釋放存儲所述快照數據的虛擬內存后,立即釋放存儲所述快照數據的物理內存;
針對存儲所述目標應用的目標類型數據的虛擬內存,啟用第二內存釋放模式,在釋放存儲所述目標類型數據的虛擬內存后,在到達物理內存釋放的時間節點的情況下,將已被釋放的虛擬內存對應的物理內存釋放。
一種可選的實施方式中,所述方法還包括:
響應于所述虛擬機的老年代內存空間銷毀指令,啟用第一內存釋放模式,釋放所述老年代內存空間對應的虛擬內存,并立即釋放所述老年代內存空間對應的物理內存。
一種可選的實施方式中,所述目標應用為通過dart編程語言編寫的應用。
一種可選的實施方式中,所述釋放所述老年代內存空間對應的虛擬內存,并立即釋放所述老年代內存空間對應的物理內存,包括:
遍歷所述老年代內存空間對應的虛擬頁面,在遍歷到一新虛擬頁面時,釋放當前遍歷到的虛擬頁面對應的虛擬內存;
在釋放完成一虛擬頁面對應的虛擬內存后,立即釋放其映射的物理內存。
一種可選的實施方式中,所述用于快速啟動并發進程的數據。
第二方面,本公開實施例還提供一種內存處理裝置,用于虛擬機,包括:
響應模塊,用于響應于目標應用的啟動指令,將用于加速啟動所述目標應用的快照數據加載到虛擬內存中;
解析模塊,用于對所述快照數據進行解析,得到所述快照數據的解析結果;
啟動模塊,用于利用所述快照數據的解析結果,啟動所述目標應用;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于抖音視界有限公司,未經抖音視界有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111501982.9/2.html,轉載請聲明來源鉆瓜專利網。





