[发明专利]一种内存处理方法及装置有效
申请号: | 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.vipzhuanli.com/pat/books/202111501982.9/2.html,转载请声明来源钻瓜专利网。