一种手机性能占用监测方法及系统与流程

文档序号:17949429发布日期:2019-06-18 23:54阅读:350来源:国知局
一种手机性能占用监测方法及系统与流程

本发明涉及一种手机性能占用监测方法及系统,属于计算机技术领域。



背景技术:

随着智能手机的普及,各类手机应用app以及手机游戏层出不穷,各大应用开发商纷纷推出自己的产品以谋求在手机应用市场上分得一杯羹,然而各种各样的手机应用针对不同的机型并没有推出对应的优化适配,导致手机运行时发生内存占用过高等问题,同时市场上充斥着大量的低端手机,也会在运行应用时发生卡顿等现象。

因此,找出手机应用运行时占用内存过多的手机应用,并找出消耗的资源类型,以便对后续优化工作提供数据支撑是重中之重,在手机游戏性能测试中,内存消耗是直接影响手机性能的一个参考,每台手机的物理内存又不尽相同,因此,监控游戏在运行过程中,物理内存的消耗显示必不可少,而目前,市面上仍未有一款可以在电脑端实时监控游戏内存变化的工具,某些厂商开发的工具需要在手机端安装软件去收集内存数据,测试完再将数据上传到服务器,不仅占用手机存储空间,运行时也会占用手机内存,加重了手机的性能负担,降低了性能监测的效率,对于实时性要求较高的内存变化,监控意义不大,而且在手机端收集数据,本身也会对手机性能产生影响。因此,如何在获取手机运行性能占用时又不影响手机的运行效率,是目前从业人员主要待解决的问题。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种机性能占用监测方法及系统,通过手机端调用守护进程模块并启动后台进程服务,通过虚拟端口建立电脑端与手机端之间的通信连接,客户端向后台进程服务发送采集对应应用信息占用内存等数据信息,将占用数据信息发送给客户端,客户端将数据进行图形化处理得到性能占用图。

本发明解决其问题所采用的技术方案一方面是:一种手机性能占用监测方法,其特征在于,包括以下步骤:s100、手机端调用守护进程模块并启动后台进程服务,后台进程服务调用手机端指定的虚拟端口;s200、通过虚拟端口建立电脑端与手机端之间的通信连接;s300、调用电脑端的虚拟模块并创建虚拟服务器,虚拟服务器管理电脑端上的客户端使其与手机端中的后台进程服务通过s200建立的通信连接进行数据交互;s400、客户端向后台进程服务发送任务指令,其中任务指令包括监测的应用名和/或读取的文件名称及路径;s500、后台进程服务解析任务指令,根据任务指令获取手机进程信息并获取性能占用数据信息,将占用数据信息发送给客户端,客户端将数据进行图形化处理得到性能占用图。

进一步的,所述通信连接包括有线数据连接和无线数据连接,其中无线数据连接通过手机端和电脑端在同一局域网下实现无线数据连接。

进一步的,所述s100包括守护进程模块启动后台进程服务并调用指定的虚拟端口,其中虚拟端口为5037端口。

进一步的,所述s200包括:s201、电脑端通过usb数据链或同一局域网网下与手机端建立通信连接;s202、电脑端向手机端发送设备信息获取指令,获取手机端的设备信息,其中设备信息包括手机信号、国际移动设备识别码、系统版本号以及mac地址;s203、虚拟服务器根据设备信息与客户端进行匹配,若符合匹配规则,则匹配成功,否则匹配失败并通过客户端显示结果。

进一步的,所述s300包括:s301、客户端检查向手机端发送检查指令,检查连接状态,并根据设备状态进行对应操作,其中连接状态包括设备正常连接、连接异常以及无连接设备;s302、设备连接异常时,向后台进程服务发送重启服务指令,后台进程服务收到指令后,关闭所有进程并重启后台进程服务,返回执行步骤s301;s303、无连接设备时,客户端显示无设备连接提醒信息;s304、正常连接时,客户端显示设备编码以及设备的后台守护进程服务占用的虚拟端口号,表示该设备与客户端已建立正常连接。

进一步的,所述s400包括:

s401、客户端向后台进程服务发送带有应用名称的监测指令;s402、后台进程服务接收到对应指令后,采集应用运行时应用总的物理内存占用、应用占用的内存分布以及应用内存占用概要信息。

进一步的,所述s400还包括:客户端向后台进程服务发送检查root指令,若该设备已经root,则读取指定存储路径的文件信息,获得图形处理器内存的消耗分布数据。

本发明解决其问题所采用的技术方案另一方面是:一种手机性能占用监测系统,其特征在于,包括:守护进程模块,用于启动后台进程服务,后台进程服务调用手机端指定的虚拟端口;通信模块,用于通过虚拟端口建立电脑端与手机端之间的通信连接;虚拟模块,用于创建虚拟服务器;虚拟服务器模块,用于管理电脑端上的客户端模块;客户端模块,用于通过通信模块建立的通信连接进行数据交互;指令发送模块,用于向后台进程服务发送任务指令;解析模块,用于解析任务指令;后台进程模块,用于获取手机进程信息并获取性能占用数据信息,并将占用数据信息发送给客户端。

进一步的,所述客户端模块还包括图形化模块,用于将数据进行图形化处理得到性能占用图;

指令管理模块,用于管理指令发送模块发送指令的内容以及时间。

进一步的,所述后台进程模块还包括采集模块,用于根据指令内容获取一段时间内手机进程信息并获取性能占用数据信息,其中一段时间由指令内容定义。

本发明的有益效果是:通过监控手机物理内存变化,可以在游戏运行的过程中,非常准确地观察且定位到内存增长的点,并通过分析截取的内存数据,分析出该点内存增长的原因,为游戏性能优化提供了有效的方向,对内存泄露检查一览无余,大大减轻了内存增长分析中定位麻烦的问题,边操作边看图表趋势,准确地定位出了内存增长是由于用户什么操作引起的。

附图说明

图1所示为根据本发明较佳实施例的方法流程示意图;

图2所示为根据本发明较佳实施例的系统结构示意图;

图3所示为根据本发明较佳实施例的流程示意图一;

图4所示为根据本发明较佳实施例的流程示意图二;

图5所示为根据本发明较佳实施例的图形化处理后的性能占用图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

参照图1所示为根据本发明较佳实施例的方法流程示意图,

s100、手机端调用守护进程模块并启动后台进程服务,后台进程服务调用手机端指定的虚拟端口;

s200、通过虚拟端口建立电脑端与手机端之间的通信连接;

s300、调用电脑端的虚拟模块并创建虚拟服务器,虚拟服务器管理电脑端上的客户端使其与手机端中的后台进程服务通过s200建立的通信连接进行数据交互;

s400、客户端向后台进程服务发送任务指令,其中任务指令包括监测的应用名和/或读取的文件名称及路径;

s500、后台进程服务解析任务指令,根据任务指令获取手机进程信息并获取性能占用数据信息,将占用数据信息发送给客户端,客户端将数据进行图形化处理得到性能占用图。

参照图2所示为根据本发明较佳实施例的系统结构示意图,

包括:守护进程模块,用于启动后台进程服务,后台进程服务调用手机端指定的虚拟端口;通信模块,用于通过虚拟端口建立电脑端与手机端之间的通信连接;虚拟模块,用于创建虚拟服务器;虚拟服务器模块,用于管理电脑端上的客户端模块;客户端模块,用于通过通信模块建立的通信连接进行数据交互;指令发送模块,用于向后台进程服务发送任务指令;解析模块,用于解析任务指令;后台进程模块,用于获取手机进程信息并获取性能占用数据信息,并将占用数据信息发送给客户端。

客户端模块还包括图形化模块,用于将数据进行图形化处理得到性能占用图;

指令管理模块,用于管理指令发送模块发送指令的内容以及时间。

后台进程模块还包括采集模块,用于根据指令内容获取一段时间内手机进程信息并获取性能占用数据信息,其中一段时间由指令内容定义。

参照图3所示为根据本发明较佳实施例的流程示意图一,

电脑端通过usb数据链或同一局域网网下与手机端建立通信连接;

电脑端向手机端发送设备信息获取指令,获取手机端的设备信息,其中设备信息包括手机信号、国际移动设备识别码、系统版本号以及mac地址;

虚拟服务器根据设备信息与客户端进行匹配,若符合匹配规则,则匹配成功,否则匹配失败并通过客户端显示结果。

参照图4所示为根据本发明较佳实施例的流程示意图二,

客户端检查向手机端发送检查指令,检查连接状态,并根据设备状态进行对应操作,其中连接状态包括设备正常连接、连接异常以及无连接设备;

设备连接异常时,向后台进程服务发送重启服务指令,后台进程服务收到指令后,关闭所有进程并重启后台进程服务,返回执行检查连接状态;

无连接设备时,客户端显示无设备连接提醒信息;

正常连接时,客户端显示设备编码以及设备的后台守护进程服务占用的虚拟端口号,表示该设备与客户端已建立正常连接。

下面举一实施例加以说明,

·将手机通过usb连接至电脑,并输入需要监控的游戏或应用包名

·该装置在电脑端,通过adb,搜集以下数据

1.应用总的物理内存用

**psstotal(proportionalsetsize,实际使用的物理内存+按比例分配共享库占用的内存)

2.应用占用的内存分布

**nativeheap(在native层(c++)中使用malloc分配出的内存)

**dalvikheap(dalvik虚拟机分配的内存,不包括它自身的开销)

**stack(栈内存)

**ashmem(匿名共享内存)

**gfxdev(/dev/kgsl-3d0占用的内存)

**otherdev(内部driver占用的内存)

**.sommap(映射的.so(native)代码占用的内存)

**.jarmmap(java文件代码占用的内存)

**.apkmmap(apk代码占用的内存)

**.ttfmmap(ttf文件代码占用的内存)

**.dexmmap(映射的.dex(dalvik或art)代码占用的内存)

**.oatmmap(代码映像占用的内存)

**.artmmap(堆映像占用的内存)

**othermmap(其他文件占用的内存)

**eglmtrack(gralloc占用的内存)

**glmtrack(gl纹理大小,gl缓冲命令以及固定的驱动ram等占用的内存开支)

**unknown(无法归类的其他项)

3.应用内存占用概要

**javaheap(java堆内存,包含dalvikheap的privatedirty,和.artmmap的privatedirty+privateclean)

**code(代码占用的内存)

**stack(栈内存)

**graphics(gpu绘制,渲染占用的内存,包括gfxdev,eglmtrack,glmtrack等)

**privateother(nativeheap,dalvikheap-heap_unknown的privatedirty和privatteclean共占用的内存)

**system(系统占用的内存,包括系统的c++堆内存,java堆内存等)

·根据收集到的数据,在电脑端实时绘制曲线图表

·对于有root权限的安卓手机,读取/d/kgsl/proc/{pid}/mem文件,获得gpu内存的消耗分布数据

·电脑收集到的数据还将保存在本地,方便查阅历史,进行对比操作

1.应用总的物理内存用

**psstotal(proportionalsetsize,实际使用的物理内存+按比例分配共享库占用的内存)

2.应用占用的内存分布

**nativeheap(在native层(c++)中使用malloc分配出的内存)

**dalvikheap(dalvik虚拟机分配的内存,不包括它自身的开销)

**stack(栈内存)

**ashmem(匿名共享内存)

**gfxdev(/dev/kgsl-3d0占用的内存)

**otherdev(内部driver占用的内存)

**.sommap(映射的.so(native)代码占用的内存)

**.jarmmap(java文件代码占用的内存)

**.apkmmap(apk代码占用的内存)

**.ttfmmap(ttf文件代码占用的内存)

**.dexmmap(映射的.dex(dalvik或art)代码占用的内存)

**.oatmmap(代码映像占用的内存)

**.artmmap(堆映像占用的内存)

**othermmap(其他文件占用的内存)

**eglmtrack(gralloc占用的内存)

**glmtrack(gl纹理大小,gl缓冲命令以及固定的驱动ram等占用的内存开支)

**unknown(无法归类的其他项)

3.应用内存占用概要

**javaheap(java堆内存,包含dalvikheap的privatedirty,和.artmmap的privatedirty+privateclean)

**code(代码占用的内存)

**stack(栈内存)

**graphics(gpu绘制,渲染占用的内存,包括gfxdev,eglmtrack,glmtrack等)

**privateother(nativeheap,dalvikheap-heap_unknown的privatedirty和privatteclean共占用的内存)

**system(系统占用的内存,包括系统的c++堆内存,java堆内存等)

得到的结果参照图5所示为根据本发明较佳实施例的图形化处理后的性能占用图,

下方三个按钮,clear,清屏,清楚屏幕上的曲线,重新绘制。文本框可以输入要监控的进程id,或者应用包名。start按钮,开始监控并绘制图表。stop停止监控。

图表分三部分,一部分是应用总的物理内存占用(psstotal),一部分是应用占用的内存分布(memoryinfo),一部分是应用内存占用概要(appsummary),横坐标是时间,每秒记录一次内存情况,纵坐标是内存大小,单位兆(mb),

第一部分表示了应用占用手机终端总的内存大小,

第二部细微到内存分布在哪一部分的代码,堆内存还是栈内存,或者是gpu之类的;

第三部分主要是归类,把第二部分功能相似的加在一起吧,比如javaheap,他包含了第二部分中的dalvikheap,.artmmap这些、graphics,屏幕绘制的,它包含了第二部分的eglmtrack,glmtrack,gfx这些,

当操作人员在第三部分观察到某一秒,graphics增长很厉害,对比第二部分,可以看到graphics的增长是glmtrack增长了,而eglmtrack,gfx这些没增长,就可以确定是由于代码提交了大量的渲染请求,根据图形走向和对比,可以清晰明了的发现导致问题的根源。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1