进程内存统计方法、装置、设备和存储介质与流程
- 国知局
- 2024-08-08 16:55:50
本申请涉及计算机,具体涉及一种进程内存统计方法、装置、设备和存储介质。
背景技术:
1、目前,随着诸如手机、智能电视和可穿戴设备等智能终端的飞速发展,用户所持有的智能终端也越来越多。而用户在使用这些智能终端时,往往会运行各应用程序或进程以执行各种功能。而智能终端需要统计进程内存以对进程内存进行合理管理。然而现有的进程内存统计工序每读取一个进程都会触发用户态内核态的切换,导致进程内存统计的性能消耗较大且进程内存统计效率低下,无法满足现有的进程内存统计需要。
技术实现思路
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、内存统计模块,被配置为基于预设的内存采集函数采集所述目标内存结构中各目标内存区域的内存统计数据,得到所述目标运行进程的内存统计结果;
35、统计输出模块,被配置为将所述终端内核态切换为终端用户态,在所述终端用户态中输出所述内存统计结果。
36、另一方面,本申请还提供一种进程内存统计设备,所述进程内存统计设备包括:
37、一个或多个处理器;
38、存储器;以及
39、一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现所述的进程内存统计方法的步骤。
40、另一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的进程内存统计方法中的步骤。
41、本申请中通过响应针对终端用户态中进程统计节点触发的进程内存统计请求,获取所述进程内存统计请求关联的进程统计链表;在终端内核态中获取所述进程统计链表中的目标运行进程的目标内存结构;基于预设的内存采集函数采集所述目标内存结构中各目标内存区域的内存统计数据,得到所述目标运行进程的内存统计结果;将所述终端内核态切换为终端用户态,在所述终端用户态中输出所述内存统计结果。实现通过在终端用户态获取存储有至少一个待统计进程内存的目标运行进程,并根据各目标运行进程的目标内存结构和预设的内存采集函数获取每一目标运行进程的内存统计结果,从而仅切换一次内核态的情况下即可采集需要关注的全部运行进程的进程内存统计结果,提高进程内存统计效率,降低进程内存统计消耗。
技术特征:1.一种进程内存统计方法,其特征在于,所述进程内存统计方法包括:
2.根据权利要求1所述的进程内存统计方法,其特征在于,所述获取所述进程内存统计请求关联的进程统计链表,包括:
3.根据权利要求1所述的进程内存统计方法,其特征在于,所述在终端内核态中获取所述进程统计链表中的目标运行进程的目标内存结构,包括:
4.根据权利要求1所述的进程内存统计方法,其特征在于,所述基于预设的内存采集函数采集所述目标内存结构中各目标内存区域的内存统计数据,得到所述目标运行进程的内存统计结果,包括:
5.根据权利要求4所述的进程内存统计方法,其特征在于,所述若所述目标内存区域为第一内存区域,则基于预设的内存采集函数采集所述第一内存区域的第一内存信息,包括:
6.根据权利要求5所述的进程内存统计方法,其特征在于,所述基于预设内存采集函数采集所述第一内存区域的内存占用指标,包括:
7.根据权利要求1-6任一项所述的进程内存统计方法,其特征在于,所述将所述终端内核态切换为终端用户态,在所述终端用户态中输出所述内存统计结果,包括:
8.一种进程内存统计装置,其特征在于,所述进程内存统计装置包括:
9.一种进程内存统计设备,其特征在于,所述进程内存统计设备包括:
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至7中任一项所述的进程内存统计方法的步骤。
技术总结本申请提供一种进程内存统计方法、装置、设备和存储介质,本申请中的进程内存统计方法包括:响应针对终端用户态中进程统计节点触发的进程内存统计请求,获取所述进程内存统计请求关联的进程统计链表;在终端内核态中获取所述进程统计链表中的目标运行进程的目标内存结构;基于预设的内存采集函数采集所述目标内存结构中各目标内存区域的内存统计数据,得到所述目标运行进程的内存统计结果;将所述终端内核态切换为终端用户态,在所述终端用户态中输出所述内存统计结果。本申请的技术方案能够实现提高进程内存统计效率,降低进程内存统计消耗。技术研发人员:蒋羿芃受保护的技术使用者:深圳TCL数字技术有限公司技术研发日:技术公布日:2024/8/5本文地址:https://www.jishuxx.com/zhuanli/20240808/271271.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表