[发明专利]按需加载动态脚本语言代码以减少内存使用有效
申请号: | 201680003117.2 | 申请日: | 2016-02-16 |
公开(公告)号: | CN106796525B | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 王海川;叶寒栋;吴芃 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F8/41 |
代理公司: | 暂无信息 | 代理人: | <国际申请>=PCT/CN2016/07 |
地址: | 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/201680003117.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于更新源代码文件的系统和方法
- 下一篇:数据处理装置