[发明专利]按需加载动态脚本语言代码以减少内存使用有效
申请号: | 201911006130.5 | 申请日: | 2016-02-16 |
公开(公告)号: | CN110941456B | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 王海川;叶寒栋;吴芃 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/41 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加载 动态 脚本语言 代码 减少 内存 使用 | ||
1.一种用于减少存储用动态脚本语言编写成的应用程序所需内存空间的系统,其特征在于,所述系统包括:
输入/输出设备,用于接收与用动态脚本语言编写成的程序模块中的程序代码段对应的请求;
按需加载器,用于确定所述程序代码段是否在内存中;若确定所述程序代码段不在所述内存中,则识别包含所述程序代码段的至少一部分所述程序模块在存储器中的存储位置;
代码加载器,用于将包含所述程序代码段的所述一部分程序模块的第二副本从所述存储器加载到所述内存,所述一部分程序模块的第二副本为包含完整函数的代码段或调试信息的编译的树状结构;
所述按需加载器,还用于通过搜索所述树状结构定位所述一部分程序模块的第二副本中的所述程序代码段;将所述程序代码段复制到所述内存中的所述程序模块的第一副本中,其中所述程序模块的第一副本中已移除了一类程序代码且已插入占位符。
2.根据权利要求1所述的系统,其特征在于,所述代码加载器还将所述程序模块的所述第一副本从所述存储器加载到所述内存;将一类程序代码从所述程序模块的所述第一副本中移除,并将占位符插入所述程序模块的所述第一副本。
3.根据权利要求2所述的系统,其特征在于,从所述程序模块的所述第一副本中移除的所述一类程序代码包括调试信息,所述请求对应于从所述程序模块的所述第一副本中移除的所述调试信息。
4.根据权利要求2所述的系统,其特征在于,从所述程序模块的所述第一副本中移除的所述一类程序代码包括函数定义,所述请求调用或查询所述函数定义。
5.一种用于减少存储用动态脚本语言编写成的应用程序所需内存空间的方法,其特征在于,所述方法包括:
通过处理器接收与用动态脚本语言编写成的程序模块中的程序代码段对应的请求;
确定所述程序代码段是否在内存中;
若确定所述程序代码段不在所述内存中,则识别包含所述程序代码段的至少一部分所述程序模块在存储器中的存储位置;
将包含所述程序代码段的所述一部分程序模块的第二副本从所述存储器加载到所述内存,所述一部分程序模块的第二副本为包含完整函数的代码段或调试信息的编译的树状结构;
通过搜索所述树状结构定位所述一部分程序模块的所述第二副本中的所述程序代码段;
将所述程序代码段复制到所述内存中的所述程序模块的第一副本中,其中所述程序模块的第一副本中已移除了一类程序代码且已插入占位符。
6.根据权利要求5所述的方法,其特征在于,还包括:
将所述程序模块的所述第一副本从所述存储器加载到所述内存;
将一类程序代码从所述程序模块的所述第一副本中移除;
将占位符插入所述程序模块的所述第一副本。
7.根据权利要求6所述的方法,其特征在于,从所述程序模块的第一副本中移除的所述一类程序代码包括调试信息,所述请求对应于从所述程序模块的第一副本中移除的所述调试信息。
8.根据权利要求6所述的方法,其特征在于,从所述程序模块的第一副本中移除的所述一类程序代码包括函数定义,所述请求调用或查询所述函数定义。
9.根据权利要求6所述的方法,其特征在于,所述从所述存储器加载所述程序模块的第一副本还包括:通过网络从远程计算机系统下载所述程序模块或从本地存储器中读取所述程序模块。
10.根据权利要求5-9任一项所述的方法,其特征在于,还包括:将从所述程序模块的所述第一副本中移除的所述一类程序代码存储至所述存储器中。
11.根据权利要求5-9任一项所述的方法,其特征在于,还包括:将所述程序模块编译成字节码。
12.根据权利要求5-9任一项所述的方法,其特征在于,还包括:执行所述程序模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911006130.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种变压器选相投切控制装置动模试验系统
- 下一篇:电网的监测报警方法及装置