一种内存优化的方法及装置与流程
- 国知局
- 2024-10-21 14:22:44
本发明涉及计算机,尤其涉及一种内存优化的方法及装置。
背景技术:
1、内存泄露是指应用程序运行过程中,已分配的内存无法释放,造成系统内存的浪费。常见的javascript内存泄露有:意外的全局变量、被遗忘的定时器和未移除的事件侦听等。
2、目前,针对可能出现的内存泄露,需要开发者有针对性地在代码中添加相应的处理逻辑才能及时释放内存。但是由于开发者经验欠缺或者人为疏忽,常常导致一些不再需要的内存无法得到释放,从而导致内存泄露,进而影响系统性能甚至导致进程崩溃。
技术实现思路
1、有鉴于此,本发明实施例提供一种内存优化的方法及装置,能够根据抽象语法树中各个节点分别对应的表达式确定出各个节点分别对应的节点属性,从多个节点中确定出各个属性下可以进行优化(可能存在内存泄露)的内存优化节点,并对应插入内存优化策略,使得按照内存优化策略在触发相应操作时,对内存优化节点进行自动优化,释放内存,从而保证内存中存储空间的稳定性,提高系统的整体性能。
2、为实现上述目的,根据本发明实施例的一个方面,提供了一种内存优化的方法。
3、本发明实施例的一种内存优化的方法包括:获取内存中的抽象语法树;根据所述抽象语法树中一个或多个节点对应的表达式,分别确定所述一个或多个节点的节点属性;根据所述节点属性从所述一个或多个节点中确定内存优化节点;生成所述内存优化节点对应的内存优化策略,并将所述内存优化策略插入所述内存优化节点对应的作用域,以通过所述内存优化策略对所述内存优化节点对应的内存进行优化。
4、可选地,该方法还包括:根据所述一个或多个节点对应的调用表达式,确定所述节点的被调用者;在所述节点的被调用者为定时器的情况下,确定所述节点为内存优化节点。
5、可选地,所述生成所述内存优化节点对应的内存优化策略,包括:根据所述节点的父节点所声明的变量名,生成所述内存优化节点的内存优化策略,以利用所述内存优化策略在页面失活时释放所述定时器占用的内存。
6、可选地,该方法还包括:在检测到页面被重新激活的情况下,根据所述父节点所声明的变量名,重新添加所述节点对应的定时器。
7、可选地,该方法还包括:根据所述一个或多个节点对应的成员表达式,确定所述节点的属性名;在根据所述属性名确定出所述节点为事件侦听节点的情况下,确定所述事件侦听节点为内存优化节点。
8、可选地,所述生成所述内存优化节点对应的内存优化策略,包括:检测所述事件侦听节点对应的dom树是否断裂;在dom树断裂的情况下生成所述内存优化节点对应的内存优化策略,内存优化策略指示移除所述事件侦听节点及对应的dom树。
9、可选地,该方法还包括:根据所述一个或多个节点的赋值表达式,确定所述赋值表达式对应的变量名;在所述赋值表达式对应的作用域内查询是否存在所述变量名对应的声明关键字;如果否,确定所述节点为内存优化节点。
10、可选地,所述生成所述内存优化节点对应的内存优化策略,包括:为所述变量名添加所述声明关键字,以将所述赋值表达式中的变量转化为局部变量。
11、为实现上述目的,根据本发明实施例的又一方面,提供了一种内存优化的装置。
12、本发明实施例的一种内存优化的装置包括:获取模块,用于获取内存中的抽象语法树;确定模块,用于根据所述抽象语法树中一个或多个节点对应的表达式,分别确定所述一个或多个节点的节点属性;根据所述节点属性从所述一个或多个节点中确定内存优化节点;优化模块,用于生成所述内存优化节点对应的内存优化策略,并将所述内存优化策略插入所述内存优化节点对应的作用域,以通过所述内存优化策略对所述内存优化节点对应的内存进行优化。
13、为实现上述目的,根据本发明实施例的又一方面,提供了一种内存优化的电子设备。
14、本发明实施例的一种内存优化的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种内存优化的方法。
15、为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
16、本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种内存优化的方法。
17、上述发明中的一个实施例具有如下优点或有益效果:能够根据抽象语法树中各个节点分别对应的表达式确定出各个节点分别对应的节点属性,从多个节点中确定出各个属性下可以进行优化(可能存在内存泄露)的内存优化节点,并对应插入内存优化策略,使得按照内存优化策略在触发相应操作时,对内存优化节点进行自动优化,释放内存,从而保证内存中存储空间的稳定性,提高系统的整体性能。
18、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
技术特征:1.一种内存优化的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,所述生成所述内存优化节点对应的内存优化策略,包括:
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求1所述的方法,其特征在于,
6.根据权利要求5所述的方法,其特征在于,所述生成所述内存优化节点对应的内存优化策略,包括:
7.根据权利要求1所述的方法,其特征在于,
8.根据权利要求7所述的方法,其特征在于,所述生成所述内存优化节点对应的内存优化策略,包括:
9.一种内存优化的装置,其特征在于,包括:
10.一种用于内存优化的电子设备,其特征在于,包括:
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
技术总结本发明公开了一种内存优化的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取内存中的抽象语法树;根据抽象语法树中一个或多个节点对应的表达式,分别确定一个或多个节点的节点属性;根据节点属性从一个或多个节点中确定内存优化节点;生成内存优化节点对应的内存优化策略,并将内存优化策略插入内存优化节点对应的作用域,以通过内存优化策略对内存优化节点对应的内存进行优化。该实施方式可以从多个节点中确定出各个属性下分别对应的内存优化节点,并对应插入内存优化策略,使得按照内存优化策略在触发相应操作时,对内存优化节点进行自动优化,释放内存,从而保证内存中存储空间的稳定性,提高系统的整体性能。技术研发人员:程达丽受保护的技术使用者:北京京东振世信息技术有限公司技术研发日:技术公布日:2024/10/17本文地址:https://www.jishuxx.com/zhuanli/20241021/317931.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。