[发明专利]一种适用于依赖分析工具的内存预测方法及装置有效
申请号: | 201910400746.4 | 申请日: | 2019-05-15 |
公开(公告)号: | CN110187967B | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 韩承锋;唐云善;邹旎彬;陈皓立;张帆;杨林;赵燕 | 申请(专利权)人: | 南瑞集团有限公司;南京南瑞信息通信科技有限公司;国网江苏省电力有限公司;国家电网有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林;张赏 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 依赖 分析 工具 内存 预测 方法 装置 | ||
本发明公开了一种适用于依赖分析工具的内存预测方法及装置,该方法具体为,从Java程序包文件中提取源代码文件;对所提取的源代码文件进行分析,生成抽象语法树,并获取每个源代码文件生成的抽象语法树中每个种类的节点类的实例对象数量;计算每个种类的节点类实例对象占用内存大小;计算每个源代码文件生成的抽象语法树占用内存大小;计算整个Java程序包所需内存大小。本发明通过对依赖分析工具运行时内存的预测,使得每次依赖分析工具容器能够通过预测得到的内存,分配至内存资源足够的容器运行节点,保证了依赖分析工具运行的稳定性,以及分布式代码检测系统运行稳定性。
技术领域
本发明涉及一种适用于依赖分析工具的内存预测方法及装置,属于计算机内存管理技术领域。
背景技术
随着容器技术的成熟和容器编排工具的不断完善,在云中部署和开发系统已经是越来越多企业的选择。容器云中主要通过容器编排工具,为用户提供了容器自动部署到节点的自动化部署方式,但是若用户不为容器指定所需的CPU以及内存资源,容器所能得到的最多为该容器所在节点上剩余内存以及CPU资源。
现阶段,课题有源文件依赖性分析工具需要在容器云环境中部署运行。该依赖性分析工具主要通过生成的程序文件的语法树的方式对程序文件间的依赖性分析。在分析过程中,这些语法树结构都是存储在内存中,如果不给依赖性分析工具容器设定足够内存资源,可能会存在依赖性分析工具在分析过程中所需内存资源不足的情况,这将会导致工具性能急剧下降甚至导致分析失败。为了保证依赖性分析工具容器在云环境中得到足够的内存资源,就需要在依赖性分析工具容器运行之前,对容器所需的最小内存进行设定。这就意味着需要根据待分析的Java源代码程序包大小,对依赖分析工具需要的内存资源进行预测。
发明内容
本发明的目的在于提供一种适用于依赖分析工具的内存预测方法及装置,使得每次依赖分析工具容器能够通过预测得到的内存,分配至内存资源足够的容器运行节点,保证了依赖分析工具运行的稳定性。
为达到上述目的,本发明采用的技术方案如下:
一种适用于依赖分析工具的内存预测方法,包括以下步骤:
从Java程序包文件中提取源代码文件;
对所述源代码文件进行分析,为每个源代码文件生成抽象语法树;
统计每个抽象语法树中每个种类的节点类的实例对象数量;
计算抽象语法树中每个种类的节点类实例对象占用内存大小;
根据抽象语法树中每个种类的节点类实例对象占用内存大小计算每个源代码文件生成的抽象语法树占用内存大小;
根据每个源代码文件生成的抽象语法树占用内存大小计算整个Java程序包所需内存大小。
前述的为每个源代码文件生成抽象语法树的过程为:
JavaParser工具使用字符流形式读取源代码文件的字符信息,读入的字符流通过词法分析器、语法分析器以及语义分析器进行分析判断,不断生成抽象语法树的节点类的实例对象,直到整个源代码文件被读取完毕。
前述的抽象语法树的节点类的种类包括以下一种或多种:
Body种类;Expr种类;Comments种类;Stmt种类;Tpye种类;由Range类、Position类、TokenRange类和JavaToken类组成的基础种类。
前述的每个种类下的节点类实例对象所占内存相同。
前述的节点类实例对象占用内存分为对象头占用内存、实例数据占用内存和对齐填充占用内存;
所述对象头占用内存为12bytes;
所述实例数据包括原生类型和reference类型;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南瑞集团有限公司;南京南瑞信息通信科技有限公司;国网江苏省电力有限公司;国家电网有限公司,未经南瑞集团有限公司;南京南瑞信息通信科技有限公司;国网江苏省电力有限公司;国家电网有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910400746.4/2.html,转载请声明来源钻瓜专利网。