本申请涉及存储,更具体地说,涉及一种可视化内存方法、装置及电子设备、存储介质。
背景技术:
1、随着集中式存储系统的发展,要求集中式存储的功能特性越来越多。集中式存储快速发展同时,代码也随着快速开发迭代。在开发迭代过程中,代码的稳定性、健壮性面临巨大的考验。在相关技术中,通过记录日志的方式来确定程序运行状态,进而确定程序运行过程中的异常点。但是,在各个工程师对代码理解的程度不同,日志记录的程序运行状态参差不齐,记录日志的方法并不一定在代码运行异常时,就能准确的定位到异常点。
2、因此,如何提高确定程序运行状态的准确性是本领域技术人员需要解决的技术问题。
技术实现思路
1、本申请的目的在于提供一种可视化内存方法、装置及电子设备、存储介质,提高了确定程序运行状态的准确性。
2、为实现上述目的,本申请提供了一种可视化内存方法,包括:
3、获取可视化内存代码;其中,所述可视化内存代码用于获取内存数据,并根据所述内存数据中关键字的类型在原始程序代码中确定所述关键字的真实值;
4、将所述可视化内存代码插入所述原始程序代码中得到目标程序代码,在运行所述目标程序代码的过程中,通过运行所述可视化内存代码获取实时内存数据;
5、当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件。
6、其中,所述可视化内存代码中目标类型的关键字的字节长度大于或等于所述原始程序代码中所述目标类型的关键字的字节长度。
7、其中,当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件,包括:
8、当通过输入接口接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件。
9、其中,当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件,包括:
10、当存储异常时,基于获取的实时内存数据生成内存可视化文件。
11、其中,基于获取的实时内存数据生成内存可视化文件之后,还包括:
12、根据所述内存可视化文件对内存进行异常定位,并根据定位到的异常向所述目标程序代码导入补丁程序,以对内存进行异常修复。
13、其中,当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件之前,还包括:
14、初始化内核模块,并建立内存页表;
15、按照内存设计模型将内存划分多个内存区域;其中,不同的内存区域用于存储不同类型的内容;
16、计算各个功能模块的各个运行阶段在各个内存区域需要的内存页数量,并创建内存设备;其中,所述功能模块包括独立磁盘冗余阵列模块,缓存模块,前端端口模块,后端端口模块,通信模块中任一项或任几项的组合;
17、启动守护进程,并利用守护进程根据计算结果将各个内存区域中的内存页通过虚拟化映射至各个功能模块,以便各个所述功能模块申请内存页记录自身的运行状态;
18、相应的,基于获取的实时内存数据生成内存可视化文件,包括:
19、创建内存可视化文件,按照所述内存设计模型将获取的实时内存数据中不同类型的内容写入所述内存可视化文件对应的位置;
20、对所述内存可视化文件进行压缩处理,输出压缩处理之后的内存可视化文件。
21、其中,所述内存区域包括内存页索引区域、内存逻辑页号区域、数据区域、全局区域、代码区域中任一项或任几项的组合;
22、所述内存页索引区域用于存储内存页索引,所述内存逻辑页号区域用于存储内存逻辑页号,所述数据区域用于存储所述目标程序代码运行过程中的数据,所述全局区域用于存储共享数据和/或状态信息,所述代码区域用于存储所述原始程序代码。
23、为实现上述目的,本申请提供了一种可视化内存装置,包括:
24、获取模块,用于获取可视化内存代码;其中,所述可视化内存代码用于获取内存数据,并根据所述内存数据中关键字的类型在原始程序代码中确定所述关键字的真实值;
25、插入模块,用于将所述可视化内存代码插入所述原始程序代码中得到目标程序代码,在运行所述目标程序代码的过程中,通过运行所述可视化内存代码获取实时内存数据;
26、生成模块,用于当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件。
27、为实现上述目的,本申请提供了一种电子设备,包括:
28、存储器,用于存储计算机程序;
29、处理器,用于执行所述计算机程序时实现如上述可视化内存方法的步骤。
30、为实现上述目的,本申请提供了一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述可视化内存方法的步骤。
31、为实现上述目的,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述可视化内存方法的步骤。
32、通过以上方案可知,本申请提供的一种可视化内存方法,包括:获取可视化内存代码;其中,所述可视化内存代码用于获取内存数据,并根据所述内存数据中关键字的类型在原始程序代码中确定所述关键字的真实值;将所述可视化内存代码插入所述原始程序代码中得到目标程序代码,在运行所述目标程序代码的过程中,通过运行所述可视化内存代码获取实时内存数据;当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件。
33、本申请提供的可视化内存方法,在原始程序代码中插入可视化内存代码,程序运行时除了运行原始程序代码之外,还会同时加载可视化内存代码,通过可视化内存代码获取实时内存数据,对实时内存数据进行可视化,实时记录代码运行过程中的状态、处理逻辑,对代码变量进行实时跟踪。可视化内存代码在获取实时内存数据之后,将其中关键字的当前值替换为真实值,提高了确定程序运行状态的准确性。本申请还公开了一种可视化内存装置及一种电子设备、一种非易失性存储介质和一种计算机程序产品,同样能实现上述技术效果。
34、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
1.一种可视化内存方法,其特征在于,包括:
2.根据权利要求1所述可视化内存方法,其特征在于,所述可视化内存代码中目标类型的关键字的字节长度大于或等于所述原始程序代码中所述目标类型的关键字的字节长度。
3.根据权利要求1所述可视化内存方法,其特征在于,当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件,包括:
4.根据权利要求1所述可视化内存方法,其特征在于,当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件,包括:
5.根据权利要求4所述可视化内存方法,其特征在于,基于获取的实时内存数据生成内存可视化文件之后,还包括:
6.根据权利要求1所述可视化内存方法,其特征在于,当接收到可视化内存请求时,基于获取的实时内存数据生成内存可视化文件之前,还包括:
7.根据权利要求6所述可视化内存方法,其特征在于,所述内存区域包括内存页索引区域、内存逻辑页号区域、数据区域、全局区域、代码区域中任一项或任几项的组合;
8.一种可视化内存装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种非易失性存储介质,其特征在于,所述非易失性存储介质上存储有计算机程序,所述计算机程序被执行时实现如权利要求1至7任一项所述可视化内存方法的步骤。