1 .一种内存分析方法,包括:
获取系统运行时的内存快照文件,所述内存快照文件包括至少一种类型的内存对象,
每种类型的内存对象包括按照预定的数据规格组织的属性信息;
创建至少一个表结构,每个表结构和一种类型的内存对象对应;
解析所述内存快照文件,并按照对应的数据规格将每个内存对象的属性信息解析到对
应的表结构中;
对所述至少一个表结构进行检索,以便于根据检索结果进行内存分析。
2.根据权利要求1所述的内存分析方法,其中,所述至少一种类型包括类对象和实例对
象,所述将每个内存对象的属性信息解析到对应的表结构中包括:
将所述内存快照文件中的类对象的属性信息解析到类表内;
将所述内存快照文件中的实例对象的属性信息解析到实例表内。
3 .根据权利要求2所述的内存分析方法,其中,所述对所述至少一个表结构进行检索包
括:从所述类表、所述实例表和其他数据结构中选出至少两项进行关联检索。
4 .根据权利要求3所述的内存分析方法,其中,根据所述类表和所述实例表的关联检索
得到以下用于内存分析的检索结果:
实例对象最多的若干个类对象的名称;
内存占用最多的若干个实例对象对应的类对象的名称;
实例对象的统计数据。
5 .根据权利要求1所述的内存分析方法,所述对所述至少一个表结构进行检索包括:
接收SQL语句,所述SQL语句用于从所述至少一个表结构检索数据;
根据所述SQL语句的语义构建n级任务,每级任务包含一个及以上的任务,同一级任务
并行执行,不同级任务串行执行,第一级任务从所述至少一个表结构获取数据,第二级至第
n-1级任务接收上一级任务的输出数据,并输出给下一级任务,第n级任务将数据汇总作为
所述SQL语句的应答,其中n大于1。
6 .根据权利要求1所述的内存分析方法,其中,通过配置信息建立所述至少一个表结构
和所述至少一个类型的内存对象之间的对应关系。
7 .根据权利要求1所述的内存分析方法,其中,获取所述系统在运行时的多个不同时刻
的内存快照文件,对于每个不同时刻的内存快照文件,将其包含的每个内存对象的属性信
息解析到对应的表结构中,检索所述至少一个表结构,获得每个内存对象在多个不同时刻
的状态信息,以便于分析每个内存对象在多个不同时刻的变化情况。
8.根据权利要求1所述的方法,其中,所述系统在虚拟机上执行,所述内存快照文件为
所述虚拟机在某一个时刻的内存状态文件。
9.根据权利要求8所述的方法,其中,所述虚拟机为JAVA虚拟机,通过JAVA虚拟机的
DUMP命令获取所述虚拟机的内存快照文件,或者通过JAVA虚拟机的DUMP命令获得所述JAVA
虚拟机的堆的内存快照文件。
10 .根据权利要求1所述的方法,其中,所述内存分析方法利用数据湖系统实现。
11 .根据权利要求1所述的方法,其中,所述至少一种类型包括以下类型中的一种或多
种:类、实例、数据结构、数组、指针。
12 .一种内存分析装置,包括:
权 利 要 求 书
1/3 页
2
评论