CN115114071A - 一种内存分析方法、装置、设备及介质 - Google Patents

一种内存分析方法、装置、设备及介质 Download PDF

Info

Publication number
CN115114071A
CN115114071A CN202210765814.9A CN202210765814A CN115114071A CN 115114071 A CN115114071 A CN 115114071A CN 202210765814 A CN202210765814 A CN 202210765814A CN 115114071 A CN115114071 A CN 115114071A
Authority
CN
China
Prior art keywords
memory
information
file
characteristic curve
capturing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210765814.9A
Other languages
English (en)
Inventor
韩志明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Changan Automobile Co Ltd
Original Assignee
Chongqing Changan Automobile Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing Changan Automobile Co Ltd filed Critical Chongqing Changan Automobile Co Ltd
Priority to CN202210765814.9A priority Critical patent/CN115114071A/zh
Publication of CN115114071A publication Critical patent/CN115114071A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种内存分析方法、装置、设备及介质,该内存分析方法包括:抓取终端的日志信息,其日志信息包括终端系统的内存信息,以及处于运行态的各项进程的信息;建立第一文件,存储上述的终端系统的内存信息;建立第二文件,存储上述的处于运行态的各项进程的信息;建立第三文件,该第三文件能读取上述的第一文件和第二文件;根据第三文件得到内存使用特性曲线,以展示系统内存信息和处于运行态的各项进程的内存信息;通过对内存使用特性曲线进行特征点识别处理,能得到内存泄漏的情况,并有效定位到出现内存泄漏的时间节点及对应进程,方便复现出现问题的场景及当时的内存状态,有效解决难以排查内存泄漏的对应进程的问题。

Description

一种内存分析方法、装置、设备及介质
技术领域
本发明涉及及终端技术领域,尤其涉及一种内存分析方法、装置、设备及介质。
背景技术
随着智能化生活的普及,Android系统已经参与到我们生活中的方方面面,比如手机,比如车机系统。在Android系统开发过程中,我们会特别关注一个信息,即为动态内存。动态内存是指用动态存储分配函数动态开辟的空间,在使用完后占用的内存会被释放。动态内存的分配和使用,会直接影响系统整体或各程序的运作情况,若动态内存分配不当,发生内存泄漏的情况,则会导致内存空间变小,长此以往可能导致程序运作卡顿甚至系统宕机。
平时在开发android系统的过程中,会遇到各种关于android系统内存泄漏相关的问题,而且很多问题都是随机产生的,很难保留产生问题的实时现象,这让开发人员在分析问题的时候很是头疼,也很难复现问题出现时候的场景,更加难以抓取问题时候的系统内存状态,导致开发人员很难排查出内存泄漏的进程,最终导致很难找到问题的根源。
发明内容
鉴于现有技术的缺点,本发明提供一种内存分析方法、设备及介质,以解决上述技术问题。
本发明提供了一种内存分析方法,包括:抓取终端的日志信息,所述日志信息包括终端系统的内存信息,以及处于运行态的各项进程的信息;建立第一文件,存储所述终端系统的内存信息;建立第二文件,存储所述处于运行态的各项进程的信息;建立第三文件,所述第三文件能读取所述第一文件和第二文件;根据第三文件得到内存使用特性曲线,以展示系统内存信息和处于运行态的各项进程的内存信息;通过对内存使用特性曲线进行特征点识别处理,得到内存泄漏的结果。
根据本申请实施例的一个方面,抓取终端的日志信息包括,设定信息抓取的时间节点,和信息抓取的间隔周期,所述时间节点包括开始节点和结束节点;周期性抓取终端系统的内存信息,并保存至第一文件;周期性抓取处于运行态的各项进程的信息,并保存至第二文件;第一文件和第二文件相互独立。
根据本申请实施例的一个方面,抓取终端系统的日志信息包括:抓取终端系统的内存信息;得到终端系统初始可用内存,和终端系统当前可用的内存,所述初始可用内存,包括物理内存减去预留位内存和内核使用内存;根据系统初始可用内存和系统当前可用内存,得到系统当前所有进程所占有的内存;抓取处于运行态的进程的数量以及各个进程占有的内存;当前所有进程所占有的内存是各个进程占有的内存之和。
根据本申请实施例的一个方面,第三文件能读取所述第一文件和第二文件包括:抓取终端在正常运行过程中的日志信息结束后,自动生成第三文件;第三文件读取第一文件的终端系统的内存信息,并储存于第三文件;第三文件读取第二文件的处于运行态的各项进程的信息,并储存于第三文件;根据上述第三文件中的信息,得到内存使用特性曲线。
根据本申请实施例的一个方面,根据所述日志信息得到内存使用特性曲线包括:在直角坐标系中生成所述内存使用特性曲线,所述内存使用特性曲线包括系统内存特征曲线,单进程内存占用特征曲线,进程数量特征曲线;系统内存特征曲线在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为系统内存的占用量;单进程内存占用特征曲线在直角坐标系中,横坐标为该进程正常运行的时间,纵坐标为该进程的即时内存占有量;进程数量特征曲线在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为当前时刻系统中处于运行态的进程数量。
根据本申请实施例的一个方面,分析内存的泄漏情况包括:如果系统进程数量稳定情况下,系统内存特征曲线的波动超过了预设的阈值区间,则该时刻可能存在内存泄漏;如果系统运行稳定情况下,单进程内存占用特征曲线的波动超过了预设的阈值区间,或该特征曲线呈现持续上升趋势,则该进程可能存在内存泄漏;如果系统运行稳定情况下,进程数量特征曲线的波动超过了预设的阈值区间,则该时刻可能存在内存泄漏。
根据本申请实施例的一个方面,确定该时刻存在内存泄漏之后,还包括:利用内存分析工具MAT,分析所述终端系统内分配内存量超过预设阈值的进程,对所述进程进行优化;分析所述进程发生内存泄漏的时间节点,检测该时刻进程的执行代码,对所述代码进行优化。
根据本申请实施例的一个方面,提供了一种内存分析装置,包括:信息抓取模块:抓取系统的日志信息;存储模块:生成文件,存储上述获取到的系统日志信息;分析模块:根据存储模块的系统日志信息,生成系统内存特征曲线,判断系统内存的泄漏情况,并定位到发生内存泄漏的进程。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述的内存分析方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述的内存分析方法。
通过实时或者在监测到特定场景的时候(比如系统发生ANR、系统卡顿的等场景)抓取系统内存以及各个进程的内存使用情况,并且用静态网页以图表的形式呈现出来,能够准确定位到发生异常的时间点及该时刻发生内存泄漏的进程信息,有助于开发人员在复盘时重现问题出现时候的场景,并根据得到的发生问题时刻的系统内存状态,迅速并准确地排查出内存泄漏的进程,并找到问题的根源。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请的一个示例性实施例示出的一种应用场景;
图2是本申请的一个示例性实施例示出的内存分析流程图;
图3是本申请的一个示例性实施例示出的抓取系统数据的流程图;
图4是本申请的一个示例性实施例示出的内存分析系统的示意框图;
图5是本申请的一个示例性实施例示出的计算机系统的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
首先需要说明的是,Android平台运行的前提是可用内存是浪费的内存。它试图在任何时候使用所有可用的内存。例如,系统会在APP关闭后将其保存在内存中,以便用户可以快速切换回它们。出于这个原因,Android设备通常运行时只有很少的空闲内存。在重要系统进程和许多用户应用程序之间正确分配内存内对存管理是至关重要。
Android设备包含三种不同类型的内存:RAM、zRAM和storage。RAM是最快的内存类型,但通常大小有限。高端设备通常具有更大的RAM容量。zRAM是用于交换空间的RAM分区。所有内容在放入zRAM时压缩,然后在从zRAM复制时解压缩。当页面移入或移出zRAM时,RAM的这一部分的大小会增大或减小。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
动态内存,是用动态存储分配函数动态开辟的空间,在使用完后占用的内存会被释放。
终端,是一种向用户提供语音和/或数据连通性的设备,例如具有无线和/或有线连接功能的手持设备、车载设备等。常见的终端包括:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备、可穿戴设备,例如智能手表、智能手环、计步器等。
内存泄漏,是指向系统申请进行使用(new),而使用完了以后却不归还(delete),结果导致申请的那一块内存自己不能再访问,系统也不能将它再次分配,从而导致系统整体的可用内存减少。从用户的角度看,内存泄漏本身不会产生危害,作为一般用户也感受不到内存泄漏的存在,但是内粗暴泄漏会产生堆积,这会最终耗尽系统的所有内存。
车机:指的是安装在汽车里面的车载信息娱乐产品的简称,车机在功能上能够实现人与车,车与外界(车与车)的信息通讯。随着信息技术的发展,智能化的深入发展,车机的功能也在进一步开发。从初代车机,最初级具备多媒体功能的产品(卡带CD+收音机),只是实现纯粹的播放音乐功能;而第二代的产品则是加入了DVD、MP3以及导航功能产品;来到了车机3.0,也就是第三代产品,具备驾驶辅助系统、360°3D全景行车可视辅助系统、全新的畅UI2.0信息聚合桌面的产品。在硬件以及功能已经完全颠覆了用户对车机的定义,更契合的满足用户在日常行车的应用需求。
图1是本申请的一个示例性实施例示出的一种应用场景。随着智能化生活的发展,作为一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统的android系统,被应用于越来越多的领域,比如车机系统。
如图1所示,android系统被搭载在车机系统中,在本发明的一个实施例中,利用python脚本抓取车机的系统日志,并将对应的日志信息保存在车机系统的存储卡里。然后再通过HTML语言去动态分析日志信息,抓取和过滤日志关键信息,动态分析系统内存是否异常,以及可能发生内存泄漏的进程,得到车机系统内存泄漏的具体情况。
图2是本申请的一个示例性实施例示出的内存分析流程图。
参照图2所示,该内存分析方法至少包括步骤S210至步骤S250,详细介绍如下:
在步骤S210中,通过Python脚本抓取终端系统的日志信息。首先根据定时器,设定一个信息抓取的时间范围,同时设定好信息抓取动作的执行周期;然后通过Python脚本,抓取车机系统的日志信息,其日志信息中包括系统的内存信息和各进程的信息。
在本申请的一个实施例中,首先启动定时器,计时3分钟,并设定信息抓取动作的执行周期为每5秒/次;每间隔5秒钟该工具会去执行一次adb shell cat/proc/meminfo命令,抓取得到系统的内存信息;同时每间隔5秒钟也会执行adb shell ps命令,抓取得到系统内的进程信息,重复上述信息抓取动作,直到最大结束时间3分钟结束。
在步骤S220中,建立第一文件和第二文件,分别储存终端系统的内存信息和处于运行态的各项进程的信息。
在本申请的一个实施例中,当Python脚本抓取到车机系统日志信息时,在车机系统的储存卡里,建立systemMemory.log文件和process.log文件,将脚本抓取到的系统内存信息储存在systemMemory.log的文件中,同时将进程信息储存在process.log的文件中。
在步骤S230中,建立建立第三文件,读取第一文件和第二文件的信息。
在本申请的一个实施例中,当Python的信息抓取工作结束时,在车机系统的储存卡中生成一个index.html的文件,用index.html的文件动态读取存有系统内存信息和进程信息的systemMemory.log文件和process.log文件。
在步骤S240中,根据第三文件得到内存使用特性曲线。
在本申请的一个实施例中,工具执行结束时,本地会动态生成一个index.html的文件。该文件则是会动态读取我们上面抓取的systemMemory.log和process.log日志信息进行分析。并根据相关信息生成内存使用特性曲线,其内存使用特性曲线包括系统内存特征曲线、单进程内存占用特征曲线和进程数量特征曲线。系统内存特征曲线在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为系统内存的占用量;单进程内存占用特征曲线在直角坐标系中,横坐标为该进程正常运行的时间,纵坐标为该进程的即时内存占有量;进程数量特征曲线在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为当前时刻系统中处于运行态的进程数量。
在步骤S250中,根据内存使用特性曲线分析内存泄漏情况。
在本申请的一个实施例中,发生以下情况的视为存在内存泄漏:第一,系统进程数量稳定情况下,系统内存特征曲线的波动超过了预设的阈值区间,则该时刻存在内存泄漏;第二,系统运行稳定情况下,单进程内存占用特征曲线的波动超过了预设的阈值区间,或该特征曲线呈现持续上升趋势,则该进程存在内存泄漏;第三,系统运行稳定情况下,进程数量特征曲线的波动超过了预设的阈值区间,则该时刻存在内存泄漏。
图3是本申请的一个示例性实施例示出抓取系统内存的流程图。
在本申请的一个实施例中,如图3所示,首先设定信息抓取时间为3分钟,间隔周期为5秒。启动定时器,则开始抓取系统内存信息和进程信息,同时生成systemMemory.log文件和process.log文件,将抓取得到的系统内存信息保存至systemMemory.log文件,将抓取得到的进程信息保存至process.log文件,每间隔5秒执行一次抓取动作,直到3分钟结束。
在本申请的一个优选实施例中,如表1所示,其内容仅为本申请的一个示例性实施方案,并不对本申请做任何限制。
Figure BDA0003722048830000051
Figure BDA0003722048830000061
Figure BDA0003722048830000071
表1
图4是本申请的一个示例性实施例示出的内存分析系统的示意框图。
在本申请的一个实施例中,如图5所示,该系统可以应用于图1的实施环境,也可以适用于其他示例性实施环境,本实施例不对其适用的实施环境进行限制。
如图4所示,该示例性的内存分析系统包括:信息抓取模块401、储存模块402和分析模块403。
其中信息抓取模块401,用于抓取终端系统的内存信息及进程信息;储存模块402用于存储抓取动作所抓取到的终端系统的内存信息及进程信息;分析模块403用于根据抓取到的终端系统的内存信息及进程信息,得到相关内存占用特征图像,并分析内存泄漏情况。
在本发明的一个实施例中,信息抓取模块401可以利用Python语言实现。根据Python脚本,抓取车机系统的得到终端系统初始可用内存和终端系统当前可用的内存,其初始可用内存,包括物理内存减去预留位内存和内核使用内存,然后根据系统初始可用内存和系统当前可用内存,得到系统当前所有进程所占有的内存;同时抓取处于运行态的进程的数量以及各个进程占有的内存。
在本发明的一个实施例中,存储模块502建立systemMemory.log文件和process.log文件,分别存储系统内存信息和进程信息。并在并在上述2个文件建立完成后,自动生成index.html文件,用于动态读取systemMemory.log文件和process.log文件的信息。
在本发明的一个实施例中,分析模块403根据index.html文件,读取到的systemMemory.log文件和process.log文件的信息,生成内存占用特征曲线。第一种内存占用特征曲线为系统内存特征曲线,其在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为系统内存的占用量,在系统进程数量稳定情况下,系统内存特征曲线的波动超过了预设的阈值区间,则该时刻可能存在内存泄漏;第二种内存占用特征曲线为单进程内存占用特征曲线,其直角坐标系中,横坐标为该进程正常运行的时间,纵坐标为该进程的即时内存占有量,在系统运行稳定情况下,单进程内存占用特征曲线的波动超过了预设的阈值区间,或该特征曲线呈现持续上升趋势,则该进程可能存在内存泄漏;第三种内存占用特征曲线为进程数量特征曲线,其在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为当前时刻系统中处于运行态的进程数量,在系统运行稳定情况下,进程数量特征曲线的波动超过了预设的阈值区间,则该时刻可能存在内存泄漏。
图5示出了,适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图5示出的电子设备的计算机系统500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
在本发明的一个实施例中,如图5所示,计算机系统500包括中央处理单元(Central Processing Unit,CPU)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从储存部分608加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU 501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例,包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的各种功能。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的内存分析方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的内存分析方法。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
在上述实施例中,除非另外规定,否则通过使用“第一”、“第二”等序号对共同的对象进行描述,只表示其指代的是相同对象的不同实例,而非是采用表示被描述的对象必须采用给定的顺序,无论是时间地、空间地、排序地或任何其他方式。
应当理解的是,本上申请的述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

Claims (10)

1.一种内存分析方法,其特征在于,包括:
抓取终端的日志信息,所述日志信息包括终端系统的内存信息,以及处于运行态的各项进程的信息;
建立第一文件,存储所述终端系统的内存信息;
建立第二文件,存储所述处于运行态的各项进程的信息;
建立第三文件,所述第三文件用于读取所述第一文件和第二文件;
根据第三文件得到内存使用特性曲线,以展示系统内存信息和处于运行态的各项进程的内存信息;
通过对内存使用特性曲线进行特征点识别处理,得到内存泄漏结果。
2.根据权利要求1所述的内存分析方法,其特征在于,抓取终端的日志信息包括:
设定信息抓取的时间节点,和信息抓取的间隔周期,所述时间节点包括开始节点和结束节点;
周期性抓取终端系统的内存信息,并保存至第一文件;
周期性抓取处于运行态的各项进程的信息,并保存至第二文件;
第一文件和第二文件相互独立。
3.根据权利要求1所述的内存分析方法,其特征在于,抓取终端系统的日志信息包括:
抓取终端系统的内存信息;
得到终端系统初始可用内存,和终端系统当前可用的内存,所述初始可用内存,包括物理内存减去预留位内存和内核使用内存;
根据系统初始可用内存和系统当前可用内存,得到系统当前所有进程所占有的内存;
抓取处于运行态的进程的数量以及各个进程占有的内存;
当前所有进程所占有的内存是各个进程占有的内存之和。
4.根据权利要求1所述的内存分析方法,其特征在于,第三文件能读取所述第一文件和第二文件包括:
抓取终端在正常运行过程中的日志信息结束后,自动生成第三文件;
第三文件读取第一文件中的终端系统的内存信息,并储存于第三文件;
第三文件读取第二文件中的处于运行态的各项进程的信息,并储存于第三文件;
根据上述第三文件中的信息,得到内存使用特性曲线。
5.根据权利要求4所述的内存分析方法,其特征在于,根据所述日志信息得到内存使用特性曲线包括:
在直角坐标系中生成所述内存使用特性曲线,所述内存使用特性曲线包括系统内存特征曲线,单进程内存占用特征曲线,进程数量特征曲线;
系统内存特征曲线在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为系统内存的占用量;
单进程内存占用特征曲线在直角坐标系中,横坐标为该进程正常运行的时间,纵坐标为该进程的即时内存占有量;
进程数量特征曲线在直角坐标系中,横坐标为系统正常运行的时间,纵坐标为当前时刻系统中处于运行态的进程数量。
6.根据权利要求4所述的内存分析方法,其特征在于,分析内存的泄漏情况包括:
如果系统进程数量稳定情况下,系统内存特征曲线的波动超过了预设的阈值区间,则该时刻可能存在内存泄漏;
如果系统运行稳定情况下,单进程内存占用特征曲线的波动超过了预设的阈值区间,或该特征曲线呈现持续上升趋势,则该进程可能存在内存泄漏;
如果系统运行稳定情况下,进程数量特征曲线的波动超过了预设的阈值区间,则该时刻可能存在内存泄漏。
7.根据权利要求6所述的内存分析方法,其特征在于,确定该时刻存在内存泄漏之后,还包括:
分析所述终端系统内分配内存量超过预设阈值的进程,对所述进程进行优化;
分析所述进程发生内存泄漏的时间节点,检测该时刻进程的执行代码,对所述代码进行优化。
8.一种内存分析装置,其特征在于,包括:
信息抓取模块:抓取系统的日志信息;
存储模块:生成文件,存储上述获取到的系统日志信息;
分析模块:根据存储模块的系统日志信息,生成系统内存特征曲线,判断系统内存的泄漏情况,并定位到发生内存泄漏的进程。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7中任一项所述的内存分析方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至7中任一项所述的内存分析方法。
CN202210765814.9A 2022-06-30 2022-06-30 一种内存分析方法、装置、设备及介质 Pending CN115114071A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210765814.9A CN115114071A (zh) 2022-06-30 2022-06-30 一种内存分析方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210765814.9A CN115114071A (zh) 2022-06-30 2022-06-30 一种内存分析方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115114071A true CN115114071A (zh) 2022-09-27

Family

ID=83329712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210765814.9A Pending CN115114071A (zh) 2022-06-30 2022-06-30 一种内存分析方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115114071A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794476A (zh) * 2023-02-01 2023-03-14 荣耀终端有限公司 内核图形系统层内存的处理方法和终端设备
CN116755951A (zh) * 2023-08-16 2023-09-15 荣耀终端有限公司 内存颠簸的衡量方法、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794476A (zh) * 2023-02-01 2023-03-14 荣耀终端有限公司 内核图形系统层内存的处理方法和终端设备
CN115794476B (zh) * 2023-02-01 2023-07-18 荣耀终端有限公司 内核图形系统层内存的处理方法和终端设备
CN116755951A (zh) * 2023-08-16 2023-09-15 荣耀终端有限公司 内存颠簸的衡量方法、设备及存储介质
CN116755951B (zh) * 2023-08-16 2024-03-08 荣耀终端有限公司 内存颠簸的衡量方法、设备及存储介质

Similar Documents

Publication Publication Date Title
CN115114071A (zh) 一种内存分析方法、装置、设备及介质
CN111611145B (zh) 崩溃信息收集方法、装置、存储介质及电子设备
CN111858112B (zh) 一种检测内存泄露的方法、客户端及服务器
CN110908865A (zh) 内存泄漏监控方法、装置及电子设备
CN111767056A (zh) 一种源码编译方法、可执行文件运行方法及终端设备
CN110633190B (zh) 一种应用程序内存监控方法、装置、设备及存储介质
CN112667246A (zh) 应用功能扩展的方法、装置及电子设备
CN115145605A (zh) 一种车载应用软件升级方法、系统、电子设备及存储介质
CN113220403B (zh) h5拦截Android返回事件的方法、装置及电子设备
CN112416303B (zh) 软件开发工具包热修复方法、装置及电子设备
CN112084024B (zh) 一种内存监控方法、装置、介质和电子设备
CN111949297B (zh) 一种区块链智能合约升级方法、装置及电子设备
CN111414308B (zh) 应用程序包的处理方法和应用程序的运行方法、装置
CN111857854A (zh) 关机资源加载方法、装置、存储介质和电子设备
CN114296986B (zh) 内存泄漏定位方法、装置、介质和电子设备
CN110908882A (zh) 一种应用程序的性能分析方法、装置、终端设备及介质
CN116976432A (zh) 一种支持任务并行处理的芯片模拟方法、装置和芯片模拟器
CN111444117A (zh) 存储空间碎片化实现方法、装置、存储介质及电子设备
CN114647411A (zh) 编程界面加载方法、装置、电子设备及存储介质
CN112764729B (zh) 应用软件开发方法、装置、计算机设备及可读存储介质
CN113448585B (zh) 一种线程池的编译方法、装置、电子设备和存储介质
CN111209062A (zh) 信息获取方法、装置、电子设备及计算机存储介质
CN112463626A (zh) 内存泄漏定位方法、装置、计算机设备及存储介质
CN112506592A (zh) 页面加载时长的确定方法、装置、设备和存储介质
CN113760631A (zh) 页面加载时长确定方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination