CN112231186B - 一种性能数据的处理方法、装置、电子设备及介质 - Google Patents
一种性能数据的处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN112231186B CN112231186B CN201910636203.2A CN201910636203A CN112231186B CN 112231186 B CN112231186 B CN 112231186B CN 201910636203 A CN201910636203 A CN 201910636203A CN 112231186 B CN112231186 B CN 112231186B
- Authority
- CN
- China
- Prior art keywords
- performance
- performance data
- data
- target
- processor
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004458 analytical method Methods 0.000 claims abstract description 41
- 230000007246 mechanism Effects 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000009877 rendering Methods 0.000 claims abstract description 19
- 238000012360 testing method Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 11
- 238000004140 cleaning Methods 0.000 claims description 3
- 238000009795 derivation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 239000003607 modifier Substances 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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 for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种性能数据的处理方法、装置、电子设备及介质,所述方法包括:利用反射机制获取性能分析器的窗口对象,所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面;利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,所述性能数据由所述性能分析器基于渲染所述目标画面的线程生成;以文本形式导出所述性能数据。本发明通过反射机制获取性能数据,效率高、适应性强且得到的性能数据能够较全面、直观的反映对应的性能问题。以文本形式呈现的性能数据可读性强,可作为二次分析的数据源,便于在二次分析中进行版本间的对比。
Description
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种性能数据的处理方法、装置、电子设备及介质。
背景技术
随着计算机和互联网技术的快速发展,越来越多的应用程序出现,用户使用终端设备上安装的应用程序来满足日常生活的需求。安装于终端设备上的游戏应用程序,也给用户带来了娱乐、视觉等体验。
为了更好的满足用户需求,游戏的分类愈加细化,游戏的制作精度愈加细致。工作人员需要不断的对游戏应用程序进行测试,并对测试中获得的相关数据进行分析。现有技术中,当通过打印游戏内部日志的方式获得相关数据时,需要对游戏应用程序作对应的代码修改,步骤较繁琐,成本高,而且并不能得到相对全面的数据。因此,需要提供更高效的方案。
发明内容
为了解决现有技术应用在获取游戏应用程序在测试中的相关数据时,效率低等问题,本发明提供了一种性能数据的处理方法、装置、电子设备及介质:
一方面,一种性能数据的处理方法,所述方法包括:
利用反射机制获取性能分析器的窗口对象,所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面;
利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,所述性能数据由所述性能分析器基于渲染所述目标画面的线程生成;
以文本形式导出所述性能数据。
另一方面提供了一种性能数据的处理装置,所述装置包括:
窗口对象反射模块:用于利用反射机制获取性能分析器的窗口对象,所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面;
性能数据获取模块:用于利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,所述性能数据由渲染所述目标画面的线程产生;
性能数据导出模块:用于将文本形式导出所述性能数据。
另一方面提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有包括至少一条指令的程序,所述程序由所述处理器加载并执行以实现如上述的性能数据的处理方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有包括至少一条指令的程序,所述程序由处理器加载并执行以实现如上述的性能数据的处理方法。
本发明提供的一种性能数据的处理方法、装置、电子设备及介质,具有如下技术效果:
本发明中性能分析器对在目标终端设备上运行的游戏应用程序进行性能分析,得到性能数据。利用反射机制获取这些性能数据,并将性能数据以文本形式导出。通过反射机制获取由性能分析器产生的性能数据,效率高、适应性强且得到的性能数据能够较全面、直观的反映对应的性能问题。以文本形式呈现的性能数据可读性强,可以作为二次分析的数据源,便于在二次分析中进行版本间的对比。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明实施例提供的一种应用环境的示意图;
图2是本发明实施例提供的一种性能数据的处理方法的流程示意图;
图3是本发明实施例提供的利用反射机制从所述窗口对象获取所述目标画面指向的性能数据的一种的流程示意图;
图4也是本发明实施例提供的利用反射机制从所述窗口对象获取所述目标画面指向的性能数据的一种流程示意图;
图5是本发明实施例提供的以文本形式导出所述性能数据的一种流程示意图;
图6是本发明实施例提供的一种性能数据的处理装置的组成框图;
图7是本发明实施例提供的一种性能数据的处理装置的组成框图;
图8是本发明实施例提供的一种电子设备的结构示意图;
图9是本发明实施例提供的导出内存对象数据的界面示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图,如图1所示,该应用环境中性能分析器对在目标终端设备上运行的游戏应用程序进行性能分析,得到性能数据。性能数据的处理装置利用反射机制获取这些性能数据。需要说明的是,图1仅仅是一种示例。
在本说明书实施例中,所述目标终端设备包括但不限于移动智能电话、平板电子设备、便携式计算机(例如笔记本电脑等)、个人数字助理(PDA)、桌面型计算机、智能可穿戴设备。所述目标终端设备的操作系统可以是MicrosoftWindows操作系统(微软视窗操作系统)、Mac OS(苹果操作系统)、Linux(一种操作系统)、iOS(苹果公司的移动操作系统)以及Android(安卓)等。
在本说明书实施例中,所述性能分析器可以对所述游戏应用程序运行中与的CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、内存、音频等相关的数据进行分析。
在实际应用中,游戏应用程序可以对应单机游戏、网络游戏等。
以下介绍本发明一种性能数据的处理方法的具体实施例,图2是本发明实施例提供的一种性能数据的处理方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:利用反射机制获取性能分析器的窗口对象,所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面;
在本发明实施例中,所述利用反射机制获取性能分析器的窗口对象,包括:首先,构建针对所述性能分析器的目标类;然后,基于所述目标类,获取所述窗口对象。所述目标类可动态创建。通过反射机制,可以在所述性能分析器运行时获得其程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息,可以获知每一个类型。当然也可以直接创建对象,即使这个对象的类型在编译时还不确定。这里获取的窗口对象指向所述游戏应用程序对应的目标画面,窗口对象中可以有对应有所述目标画面指向的性能数据(所述性能数据由所述性能分析器基于渲染所述目标画面的线程生成)以及其他数据。
具体的,所述目标类可以是System.Type类,通过这个类可以访问任何给定数据类型的信息。System.Type类作为一个抽象的基类,Type可以有与每种数据类型对应的派生类,可以使用派生类的对象的方法、字段、属性来查找有关该类型的所有信息。所述目标类也可以是System.Reflection.Assembly类,它可以获得程序集的信息,也可以动态的加载程序集,以及在程序集中查找类型信息,并创建该类型的实例。
进一步的,可以使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(比如pulic或private;public对全部用户开放的;private表示私有。)和实现详细信息(比如abstract(抽象)或virtual(虚拟))等。使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(比如pulic或private)和实现详细信息(比如abstract或virtual)等。使用FieldInfo了解字段的名称、访问修饰符(比如public或private)和实现详细信息(比如static(静态))等,并获取或设置字段值。使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
在一个具体的实施例中,所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述性能分析器可以也运行于所述目标终端设备。当然,游戏应用程序可以运行于终端设备A中,性能分析器可以运行于终端设备B中,性能分析器可以在鉴权成功后对所述游戏应用程序进行测试。
在实际应用中,所述性能分析器可以为游戏引擎。所述游戏应用程序可以为基于所述游戏引擎正在开发的游戏,也可以是已经开发完成的游戏。所述游戏引擎可以是Unity(一种跨平台的游戏引擎)、Director(由Adobe公司开发的一款软件;Adobe公司:奥多比系统公司)等。
进一步的,性能分析器可以是Unity编辑器中的UnityProfiler。可以通过“assembly.GetType(“UnityEditor.ProfilerWindow”)”反射获取性能分析器的窗口对象ProfilerWindow。窗口对象ProfilerWindow也可以指向后续具体的性能数据(比如处理器性能、内存性能)的窗口对象。
S202:利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,所述性能数据由所述性能分析器基于渲染所述目标画面的线程生成;
在本发明实施例中,所述利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:对所述窗口对象中的成员变量进行读取,以得到所述性能数据。这里对于反射机制的利用可以参见步骤S201中的相关记载。通过反射机制,可以为对象的属性动态赋值,可以为对象的字段动态赋值。
由所述性能分析器基于渲染所述目标画面的线程生成的性能数据通常以data格式(一种数据格式)存储。data格式作为一个专用的文件格式,需要由性能分析器(比如UnityProfiler)解析才能进行读取。当需要进行多版本对比时,比如游戏应用程序的版本,还需要重新安装版本进行分析。进行对比这里利用反射机制获取得到性能数据的格式与所述性能分析器生成的性能数据的格式相同,可以也为data格式。
所述性能分析器基于渲染所述目标画面的线程生成的性能数据可以包括处理器(CPU、GPU)性能数据、内存对象数据、音频性能数据等。渲染目标画面的线程中,需要更新游戏应用程序的状态,获取快照并且将快照渲染到屏幕。需要执行的任务包括读取用户输入、执行脚本、灯光运算等。当然,还有一些一帧内执行多次的操作,如物理计算。当所有的任务执行的足够快,游戏将获得一个较好的帧率(FPF,Frames Per Second;帧率可以作为衡量游戏性能的一个标准)。当这些任务执行得不够快,目标画面的渲染将会花费较长时间,这样帧率会下降。性能分析器对在目标终端设备上运行的游戏应用程序进行性能分析时,可以记录每帧画面指向的反映处理器性能、内存对象、音频性能等的数据,通过这些数据可以追踪定位造成游戏运行缓慢、卡顿甚至卡死的位置,进而找到解决对应问题的办法。
在一个具体的实施例中,如图3所示,当所述性能数据为处理器性能数据时,所述利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:
S301:从所述窗口对象获取所述目标画面指向的帧数据;
当性能分析器为Unity编辑器中的UnityProfiler时,可以利用反射机制获取当前实例化的ProfilerWindow,进而通过“profilerWindowType.GetFiled(“m_CurrentFrame”)”反射获取所述目标画面指向的帧数据。
进一步的,可以基于待测试帧画面从窗口对象获取待测试帧画面指向的帧数据。待测试帧画面可以包括至少一帧画面。比如,测试时间段内运行的所述游戏应用程序对应3000帧画面。待测试帧画面可以是全部的3000帧画面,待测试帧画面可以是前1000帧画面,待测试帧画面可以是第5帧画面和第60-1500帧画面。可以根据需要灵活的获取待测试帧画面指向的帧数据,不局限于固定的帧数、时长,保证能够更为有效的为后续分析获得对应的性能数据。
当待测试帧画面为测试时间段内所述游戏应用程序对应全部帧画面,那么可以从所述窗口对象获取测试时间段内的每一帧画面指向的待计算帧数据。
S302:从所述帧数据中筛选出处理器性能分析参数;
所述处理器性能分析参数包括从处理器任务类型、调用函数(可以包括函数名称、函数对应的耗时情况)、函数调用关系组成的群组中选择的至少一个。所述处理器性能分析参数可以用于表征渲染每帧画面的各线程任务使用CPU的时间。渲染所述目标画面的线程中可以包括至少一个任务,那么处理器任务类型可以包括主线程任务(可以由main thread(主线程)执行)、渲染线程任务(可以由render thread(渲染线程)执行)和工作线程任务(可以由worker threads(工作线程)执行)等。渲染所述目标画面的线程中可以同时运行多个单独任务。各线程任务使用CPU的时间可以反映该线程任务的耗时情况,耗时最多表明该该线程任务执行最慢,进而可以对该线程任务作进一步分析、优化。对于渲染每帧画面的各线程任务中调用到的函数,在帧数据中可以得到该函数的调用热度、该函数对应的耗时情况以及该函数调用的其他函数对应的耗时情况。
可以将从所述帧数据中筛选出处理器性能分析参数保存于内存数组,后续可以从所述内存数组中以文本形式导出对应的处理器性能数据。
S303:根据所述处理器性能分析参数,得到所述处理器性能数据;
进一步的,当待测试帧画面为测试时间段内所述游戏应用程序对应全部帧画面时,从所述窗口对象获取测试时间段内的每一帧画面指向的待计算帧数据;再根据所述处理器性能分析参数,分别得到每个所述待计算帧数据对应的中间处理器性能数据。然后,根据各个所述中间处理器性能数据,得到目标处理器性能数据。可以得到测试时间段内渲染各帧画面的某一线程任务使用CPU的平均时间,可以得到测试时间段内渲染各帧画面的同一线程任务使用CPU的平均时间,这样得到的目标处理器性能数据对于分析处理器性能的平稳性能很有帮助。
在实际应用中,可以基于用户通过交互界面的“开始”按钮和“结束”按钮,确定测试时间段。当然,针对测试时间段的确定指令不仅可以由用户通过对应的按钮触发,还可以包括声音触发(麦克风采集声音,通过提取具有特定含义的语音来触发)、图像触发(摄像头采集图像数据,通过提取具有特定含义的表情、手势来触发)。
对利用反射机制从性能分析器中获取的性能数据(原始),作目标维度的筛选,这样可以更具分析针对性的处理器性能数据。对作为二次分析的数据源的性能数据做了更细粒度的区分,便于进行目标维度的版本对比。
在另一个具体的实施例中,如图4所示,当所述性能数据为内存对象数据时,所述利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:
S401:从所述窗口对象获取所述目标画面指向的内存对象列表;
当性能分析器为Unity编辑器中的UnityProfiler时,可以利用反射机制获取当前实例化的ProfilerWindow,进而通过“window.PrivateInstanceFiled(“m_CurrentArea”)”反射获取内存数据分析区域(当前profiler栏),再通过“windowDynamic.PrivateInstanceFiled(“m_MemoryListView”)获取所述目标画面指向的内存对象列表。
进一步的,可以基于待测试帧画面从窗口对象获取待测试帧画面指向的内存对象列表。待测试帧画面可以包括至少一帧画面。比如,测试时间段内运行的所述游戏应用程序对应3000帧画面。待测试帧画面可以是全部的3000帧画面,待测试帧画面可以是前1000帧画面,待测试帧画面可以是第5帧画面和第60-1500帧画面。可以根据需要灵活的获取待测试帧画面指向的内存对象列表,不局限于固定的帧数、时长,保证能够更为有效的为后续分析获得对应的性能数据。
S402:根据筛选信息和所述内存对象列表,得到所述内存对象数据;
所述筛选信息包括从待分析内存对象对应的存储大小和节点遍历深度组成的群组中选择的至少一个。
在一个具体的实施例中,内存对象列表中每一行的内存对象通常都有子节点,这样可以从子节点中筛选出用于输出的待分析内存对象。可以设置待分析内存对象对应的存储大小,比如设置输出内存对象数据的存储大小大于1MB。可以设置节点遍历深度(相当于筛选待分析内存对象需要遍历的空间范围),比如设置指定输出的层级(节点遍历深度)为2级。
在另一个具体的实施例中,可以先在内存对象列表中确认待分析内存对象。待分析内存对象可以视作一个父节点,该父节点可以包括至少一个子节点。筛选信息为节点遍历深度,这样对于确定的待分析内存对象(父节点),可以按照节点遍历深度指向的路径进行遍历,进而得到该待分析内存对象对应的树形结构。
得到的内存对象数据可以反映内存的性能,较佳的性能品质可以为游戏应用程序的良好运行(速度快、运行平稳)提供保障。对利用反射机制从性能分析器中获取的性能数据(原始),作目标维度的筛选,这样可以更具分析针对性的内存对象数据。对作为二次分析的数据源的性能数据做了更细粒度的区分,便于进行目标维度的版本对比。
S203:以文本形式导出所述性能数据。
在本发明实施例中,导出的性能数据以文本形式呈现,这样可读性强。性能数据可以本地化存储,方便进行二次分析,能够减少进行二次分析的工作量和成本,同时提高定位具体性能问题的准确性和效率。
在一个具体的实施例中,如图5所示,所述以文本形式导出所述性能数据,包括:
S501:确定所述文本形式对应的目标格式;
所述文本形式对应的目标格式可以为字符串格式。
S502:参照所述目标格式,对所述性能数据进行清洗以得到目标数据;
在数据清洗过程中,可以将data格式的性能数据转换为目标数据:字符串格式的性能数据。当然,数据清洗的过程中还可以对数据作一些其他调整(比如针对残缺数据、重复数据等的调整)以便于后续的性能分析。
S503:导出所述目标数据。
在对目标数据导出的过程中可以进行用于保存的本地化路径选择。
在实际应用中,可以基于用户通过交互界面的“导出”按钮开始以文本形式导出所述性能数据。当然,对性能数据作文本形式导出的触发指令不仅可以由用户通过对应的按钮触发,还可以包括声音触发(麦克风采集声音,通过提取具有特定含义的语音来触发)、图像触发(摄像头采集图像数据,通过提取具有特定含义的表情、手势来触发)。
如图9所示,当所述性能数据为内存对象数据时,可以在交互界面上设置针对如步骤S401-S402中内存对象列表的筛选信息设置,进而导出得到内存对象数据。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中性能分析器对在目标终端设备上运行的游戏应用程序进行性能分析,得到性能数据。利用反射机制获取这些性能数据,并将性能数据以文本形式导出。通过反射机制获取由性能分析器产生的性能数据,效率高、适应性强且得到的性能数据能够较全面、直观的反映对应的性能问题。以文本形式呈现的性能数据可读性强,可以作为二次分析的数据源,便于在二次分析中进行版本间的对比。
本发明实施例还提供了一种性能数据的处理装置,如图6、7所示,所述装置包括:
窗口对象反射模块610:用于利用反射机制获取性能分析器的窗口对象,所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面;
性能数据获取模块620:用于利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,所述性能数据由渲染所述目标画面的线程产生;
性能数据导出模块630:用于将文本形式导出所述性能数据。
在一个具体的实施例中,如图7所示,所述窗口对象反射模块610,包括:目标类构建单元611:用于构建针对所述性能分析器的目标类;窗口对象获取单元612:用于基于所述目标类,获取所述窗口对象。所述性能数据获取模块620包括:成员变量读取单元621:用于对所述窗口对象中的成员变量进行读取,以得到所述性能数据。
需要说明的,所述装置实施例中的装置与方法实施例基于同样的发明构思。
本发明实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有包括至少一条指令的程序,所述程序由该处理器加载并执行以实现如上述方法实施例所提供的性能数据的处理方法。
进一步地,图8示出了一种用于实现本发明实施例所提供的方法的电子设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置。如图8所示,设备80可以包括一个或多个(图中采用802a、802b,……,802n来示出)处理器802(处理器802可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器804、以及用于通信功能的传输装置806。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备80还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
应当注意到的是上述一个或多个处理器802和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备80(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器804可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器802通过运行存储在存储器84内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种性能数据的处理方法。存储器804可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器804可进一步包括相对于处理器802远程设置的存储器,这些远程存储器可以通过网络连接至电子设备80。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备80的通信供应商提供的无线网络。在一个实例中,传输装置806包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置806可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子设备80(或移动设备)的用户界面进行交互。
本发明的实施例还提供了一种存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中性能数据的处理方法相关的包括至少一条指令的程序,所述程序由该处理器加载并执行以实现上述方法实施例提供的性能数据的处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种性能数据的处理方法,其特征在于,所述方法包括:
利用反射机制获取性能分析器的窗口对象,包括:构建针对所述性能分析器的目标类;基于所述目标类,获取所述窗口对象;所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面,所述目标类是通过反射机制在所述性能分析器运行时从其程序或程序集中确定的;
利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:对所述窗口对象中的成员变量进行读取,以得到所述性能数据;所述性能数据由所述性能分析器基于渲染所述目标画面的线程生成,所述窗口对象中的成员变量是通过反射机制在所述性能分析器运行时从其程序或程序集中确定的;
以文本形式导出所述性能数据。
2.根据权利要求1所述的方法,其特征在于,当所述性能数据为处理器性能数据时,所述利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:
从所述窗口对象获取所述目标画面指向的帧数据;
从所述帧数据中筛选出处理器性能分析参数;
根据所述处理器性能分析参数,得到所述处理器性能数据;
其中,所述处理器性能分析参数包括从处理器任务类型、调用函数、函数调用关系组成的群组中选择的至少一个。
3.根据权利要求2所述的方法,其特征在于:
所述从所述窗口对象获取所述目标画面指向的帧数据,包括:
从所述窗口对象获取测试时间段内的每一帧画面指向的待计算帧数据;
所述根据所述处理器性能分析参数,得到所述处理器性能数据,包括:
根据所述处理器性能分析参数,分别得到每个所述待计算帧数据对应的中间处理器性能数据;
根据各个所述中间处理器性能数据,得到目标处理器性能数据。
4.根据权利要求1所述的方法,其特征在于,当所述性能数据为内存对象数据时,所述利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:
从所述窗口对象获取所述目标画面指向的内存对象列表;
根据筛选信息和所述内存对象列表,得到所述内存对象数据;
其中,所述筛选信息包括从待分析内存对象对应的存储大小和节点遍历深度组成的群组中选择的至少一个。
5.根据权利要求1所述的方法,其特征在于,所述以文本形式导出所述性能数据,包括:
确定所述文本形式对应的目标格式;
参照所述目标格式,对所述性能数据进行清洗以得到目标数据;
导出所述目标数据。
6.一种性能数据的处理装置,其特征在于,所述装置包括:
窗口对象反射模块:用于利用反射机制获取性能分析器的窗口对象,包括:构建针对所述性能分析器的目标类;基于所述目标类,获取所述窗口对象;所述性能分析器用于对在目标终端设备上运行的游戏应用程序进行性能分析,所述窗口对象指向所述游戏应用程序对应的目标画面,所述目标类是通过反射机制在所述性能分析器运行时从其程序或程序集中确定的;
性能数据获取模块:用于利用反射机制从所述窗口对象获取所述目标画面指向的性能数据,包括:对所述窗口对象中的成员变量进行读取,以得到所述性能数据;所述性能数据由所述性能分析器基于渲染所述目标画面的线程生成,所述窗口对象中的成员变量是通过反射机制在所述性能分析器运行时从其程序或程序集中确定的;
性能数据导出模块:用于将文本形式导出所述性能数据。
7.根据权利要求6所述的装置,其特征在于,当所述性能数据为处理器性能数据时,所述性能数据获取模块:用于从所述窗口对象获取所述目标画面指向的帧数据;从所述帧数据中筛选出处理器性能分析参数;根据所述处理器性能分析参数,得到所述处理器性能数据;其中,所述处理器性能分析参数包括从处理器任务类型、调用函数、函数调用关系组成的群组中选择的至少一个。
8.根据权利要求7所述的装置,其特征在于:
所述从所述窗口对象获取所述目标画面指向的帧数据,包括:
从所述窗口对象获取测试时间段内的每一帧画面指向的待计算帧数据;
所述根据所述处理器性能分析参数,得到所述处理器性能数据,包括:
根据所述处理器性能分析参数,分别得到每个所述待计算帧数据对应的中间处理器性能数据;
根据各个所述中间处理器性能数据,得到目标处理器性能数据。
9.根据权利要求6所述的装置,其特征在于,当所述性能数据为内存对象数据时,所述性能数据获取模块:用于从所述窗口对象获取所述目标画面指向的内存对象列表;根据筛选信息和所述内存对象列表,得到所述内存对象数据;
其中,所述筛选信息包括从待分析内存对象对应的存储大小和节点遍历深度组成的群组中选择的至少一个。
10.根据权利要求6所述的装置,其特征在于,所述性能数据导出模块:用于确定所述文本形式对应的目标格式;参照所述目标格式,对所述性能数据进行清洗以得到目标数据;导出所述目标数据。
11.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有包括至少一条指令的程序,所述程序由所述处理器加载并执行以实现如权利要求1-5任一所述的性能数据的处理方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有包括至少一条指令的程序,所述程序由处理器加载并执行以实现如权利要求1-5任一所述的性能数据的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910636203.2A CN112231186B (zh) | 2019-07-15 | 2019-07-15 | 一种性能数据的处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910636203.2A CN112231186B (zh) | 2019-07-15 | 2019-07-15 | 一种性能数据的处理方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231186A CN112231186A (zh) | 2021-01-15 |
CN112231186B true CN112231186B (zh) | 2024-03-15 |
Family
ID=74111763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910636203.2A Active CN112231186B (zh) | 2019-07-15 | 2019-07-15 | 一种性能数据的处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231186B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360343B (zh) * | 2021-06-15 | 2022-08-16 | 网易(杭州)网络有限公司 | 分析内存占用状况的方法、装置、存储介质及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1410167A2 (en) * | 2000-09-21 | 2004-04-21 | International Business Machines Corporation | Mutability analysis in java |
CN107168844A (zh) * | 2016-03-07 | 2017-09-15 | 中国移动通信集团河南有限公司 | 一种性能监控的方法及装置 |
CN109032793A (zh) * | 2018-07-11 | 2018-12-18 | Oppo广东移动通信有限公司 | 资源配置的方法、装置、终端及存储介质 |
CN109753432A (zh) * | 2018-12-21 | 2019-05-14 | 瑞庭网络技术(上海)有限公司 | 一种接口性能测试方法、装置、服务器及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105869216A (zh) * | 2016-03-29 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 目标对象展示方法和装置 |
-
2019
- 2019-07-15 CN CN201910636203.2A patent/CN112231186B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1410167A2 (en) * | 2000-09-21 | 2004-04-21 | International Business Machines Corporation | Mutability analysis in java |
CN107168844A (zh) * | 2016-03-07 | 2017-09-15 | 中国移动通信集团河南有限公司 | 一种性能监控的方法及装置 |
CN109032793A (zh) * | 2018-07-11 | 2018-12-18 | Oppo广东移动通信有限公司 | 资源配置的方法、装置、终端及存储介质 |
CN109753432A (zh) * | 2018-12-21 | 2019-05-14 | 瑞庭网络技术(上海)有限公司 | 一种接口性能测试方法、装置、服务器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112231186A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3149590B1 (en) | Performance optimization tip presentation during debugging | |
US20220318945A1 (en) | Optimizing compilation of shaders | |
Luo et al. | A survey of context simulation for testing mobile context-aware applications | |
US9292281B2 (en) | Identifying code that exhibits ideal logging behavior | |
CN106649084A (zh) | 函数调用信息的获取方法及装置、测试设备 | |
US10459835B1 (en) | System and method for controlling quality of performance of digital applications | |
CN108874672B (zh) | 应用程序异常定位方法、装置、设备及存储介质 | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN113268243B (zh) | 内存预测方法及装置、存储介质、电子设备 | |
CN111274512A (zh) | 一种页面加载方法、装置及介质 | |
Akour et al. | Mobile software testing: Thoughts, strategies, challenges, and experimental study | |
CN112231186B (zh) | 一种性能数据的处理方法、装置、电子设备及介质 | |
CN112069052B (zh) | 一种异常对象检测方法、装置、设备及存储介质 | |
Seeker et al. | Measuring qoe of interactive workloads and characterising frequency governors on mobile devices | |
CN114490273A (zh) | 数据处理方法以及系统 | |
You et al. | A comparative study of cross-platform mobile application development | |
CN112346962A (zh) | 一种应用于对照测试系统中的对照数据测试方法及装置 | |
CN114282686A (zh) | 用于构建机器学习建模过程的方法及系统 | |
CN112416734A (zh) | 测试的方法、装置以及存储介质 | |
CN114265777B (zh) | 应用程序的测试方法、装置、电子设备及存储介质 | |
CN114968960A (zh) | 日志处理方法、装置、计算机设备及存储介质 | |
CN109726550A (zh) | 异常操作行为检测方法、装置及计算机可读存储介质 | |
CN115391204A (zh) | 自动驾驶服务的测试方法、装置、电子设备及存储介质 | |
CN103269341A (zh) | 一种间谍程序的分析方法和计算机系统 | |
RU2713760C1 (ru) | Способ и система выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |