CN110532193A - 一种性能分析方法、装置、计算设备及存储介质 - Google Patents

一种性能分析方法、装置、计算设备及存储介质 Download PDF

Info

Publication number
CN110532193A
CN110532193A CN201910848929.2A CN201910848929A CN110532193A CN 110532193 A CN110532193 A CN 110532193A CN 201910848929 A CN201910848929 A CN 201910848929A CN 110532193 A CN110532193 A CN 110532193A
Authority
CN
China
Prior art keywords
objective function
information
target program
performance
signature identification
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
CN201910848929.2A
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.)
Zhuhai Kingsoft Online Game Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Online Game Technology 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 Zhuhai Kingsoft Online Game Technology Co Ltd filed Critical Zhuhai Kingsoft Online Game Technology Co Ltd
Priority to CN201910848929.2A priority Critical patent/CN110532193A/zh
Publication of CN110532193A publication Critical patent/CN110532193A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

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

Abstract

本说明书提供一种性能分析方法、装置、计算设备及存储介质,其中所述性能分析方法包括:运行目标程序,获取所述目标程序的特征标识;根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;根据所述至少一个目标函数信息获取对应的至少一个目标函数;记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。

Description

一种性能分析方法、装置、计算设备及存储介质
技术领域
本说明书涉及计算机技术领域,特别涉及一种性能分析方法、装置、计算设备及计算机可读存储介质。
背景技术
在性能数据的分析测试领域,很多重要测试指标的分析均会涉及到目标程序中运行的一些目标函数的提取与分析,然而在现有技术中,当涉及到目标函数的提取和分析时,基本都是针对目标函数名进行提取分析,这种提取方式适用于目标函数地址不发生改变的情况,例如库函数等。但是,在目标程序存在多个版本情况下,现有技术中按照目标函数地址进行目标函数的提取和分析则不再适用,原因在于,对于各编译出来的版本,每编译一次,目标函数地址均会发生改变,由于各版本的程序的代码在不断改变,所以每次编译后的目标函数地址均会改变,同时代码中存在很多非公开的函数和私有函数,因此无法适用现有技术的按照目标函数地址进行目标函数的提取和分析。
发明内容
有鉴于此,本说明书实施例提供了一种性能分析方法、装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种性能分析方法,应用于终端,包括:
运行目标程序,获取所述目标程序的特征标识;
根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;
根据所述至少一个目标函数信息获取对应的至少一个目标函数;
记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
根据本说明书实施例的第二方面,提供了一种性能分析方法,应用于服务器,包括:
根据目标程序的特征标识,将预存的与所述目标程序的特征标识对应的至少一个目标函数信息发送至终端;
接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
根据本说明书实施例的第三方面,提供了一种性能分析装置,内置于终端,包括:
运行模块,被配置为运行目标程序,获取所述目标程序的特征标识;
第一获取模块,被配置为根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;
第二获取模块,被配置为根据所述至少一个目标函数信息获取对应的至少一个目标函数;
数据记录模块,被配置为记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
根据本说明书实施例的第四方面,提供了一种性能分析装置,内置于服务器,包括:
发送模块,被配置为根据目标程序的特征标识,将预存的与所述目标程序的特征标识对应的至少一个目标函数信息发送至终端;
分析模块,被配置为接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
根据本说明书实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述性能分析方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述性能分析方法的步骤。
本申请根据目标程序的特征标识和目标函数信息对所述目标程序进行性能分析的方法,实现了目标函数的动态分析、动态调整以及自动出目标程序的性能测试结果,即用户可以根性能分析地需要,进行选择性分析而无须分析所有的目标函数,无需反复多次修改目标程序,一次开发完成就可以适用于多个不同版本目标程序的分析,减少开发工作量。
此外,针对多次编译有很多版本的情况,本申请通过版本比较可以很方便地实现版本间的数据对比,性能分析,然而现有技术则必须在每次进行一个新的版本运行时,均需要进行重新提取记录相关目标函数,无法实现本申请自动记录版本号并进行统一自动提取相关目标函数。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的性能分析方法的流程图;
图3是本申请实施例提供的性能分析方法的示意图;
图4是本申请实施例提供的性能分析方法的示意图;
图5是本申请实施例提供的性能分析方法的示意图;
图6是本申请实施例提供的性能分析装置的结构示意图;
图7是本申请实施例提供的性能分析装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
符号文件:一个数据信息文件,它包含了应用程序二进制文件调试信息,专门用于调试,一般情况下,符号文件包括全局变量、局部变量、目标函数名和它们的入口地址以及框架指针省略数据。
Hook技术:中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。
在本申请中,提供了一种性能分析方法、装置、计算设备及存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的性能分析方法的示意性流程图,应用于终端,包括步骤201至步骤204。
步骤201:运行目标程序,获取所述目标程序的特征标识。
在本申请实施例中,所述目标程序可以是运行在智能手机、台式电脑或平板电脑等终端设备上的游戏、应用(APP)或其他需要进行性能测试的程序,所述终端运行上述需要进行性能测试的目标程序,并获取用于区分不同所述目标程序的特征标识。
步骤202:根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息。
在本申请实施例中,终端根据当前运行的所述目标程序的特征标识,从服务器端下载所述目标程序的特征标识对应的至少一个目标函数信息。
步骤203:根据所述至少一个目标函数信息获取对应的至少一个目标函数。
在本申请实施例中,终端根据所述至少一个目标函数信息,在所述目标程序运行时,优先获取与所述至少一个目标函数信息对应的至少一个用于进行性能测试的目标函数。
步骤204:记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
在本申请实施例中,终端记录所述至少一个用于性能分析的目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器用于进行后续的分析和处理。
本申请的性能分析方法通过从服务器下载目标程序对应的目标函数信息,利用目标函数信息获取用于测试的目标函数,再将所述目标函数的性能数据返回至服务器从而获得目标程序的性能测试结果。
在本申请的一个实施例中,根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息包括:
根据所述目标程序当前的运行版本,从服务器获取与所述目标程序当前的运行版本对应的至少一个目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
在上述实施例中,由于所述目标程序在进行版本更新时,每编译一次,所述目标函数的目标函数信息都会发生改变,因此,通过将所述目标程序当前的运行版本作为所述目标程序的特征标识,所述终端可以从服务器获取与所述目标程序当前的运行版本对应的至少一个目标函数信息,例如,一个游戏程序在初始公测的版本为1.0.0,在需要进行性能测试时的版本为1.0.3,则所述终端可以从服务器获取版本为1.0.3的游戏程序中的至少一个目标函数信息,所述目标函数信息包括目标函数名和地址信息,比如LOGIN、Trace Log和TEST等等。
本申请通过按照所述目标程序的版本获取对应的至少一个目标函数信息,使得用于可以按照目标程序的版本对所述目标程序进行性能测试。
在本申请的一个实施例中,根据所述至少一个目标函数信息获取对应的至少一个目标函数包括:
根据所述至少一个目标函数信息中的地址信息,在所述目标程序中钩取与所述地址信息对应的目标函数名相匹配的目标函数。
在上述实施例中,终端通过hook技术,根据所述至少一个目标函数信息中的地址信息在目标函数中设置hook点,利用hook函数在所述目标程序运行中钩取含有hook点的目标函数。
本申请通过hook技术实现目标函数的钩取,具有高效和自动化的优点,提高了性能测试的稳定性和可靠性。
在本申请的一个实施例中,记录所述至少一个目标函数的性能数据包括:
记录所述至少一个目标函数的消耗时间信息、关键参数信息和运行结果信息,其中,所述消耗时间可以是所述目标程序调用所述至少一个目标函数的消耗时间,所述关键参数信息可以是所述至少一个目标函数的必选参数、默认参数、可变参数或关键字参数等信息。
在本申请的一个实施例中,根据所述至少一个目标函数信息获取对应的至少一个目标函数包括:
调取预存的函数列表,基于所述至少一个目标函数信息和所述函数列表确定需要获取的至少一个目标函数名;
在所述目标程序中钩取与所述需要获取的至少一个目标函数名相匹配的目标函数。
在上述实施例中,所述函数列表包括目标函数名以及目标函数名对应的性能类别;
基于所述至少一个目标函数信息和所述函数列表确定需要获取的至少一个目标函数名,包括:
基于所述至少一个目标函数信息以及需要分析的性能类别,在所述函数列表中确定需要获取的至少一个目标函数名。
在所述终端中自动化内置了包含有多个目标函数名以及目标函数名对应的性能类别的函数列表,所述终端可以根据用户在性能分析中的需求,提取所述函数列表的部分性能类别中对应的至少一个目标函数名,并通过所述至少一个目标函数名,在所述目标程序中钩取与所述需要获取的至少一个目标函数名相匹配的目标函数,例如,用户需要分析某个游戏程序的内存占用性能时,则所述终端只需要从所述函数列表提取与内存相关的性能类别中对应的至少一个目标函数名即可,所述性能类别与所述目标函数名之间的对应关系可以通过在所述函数列表中利用指针索引实现所述目标函数名的归类。
本申请通过内置函数列表,使得用户在进行性能分析时可以根据需求提取部分目标函数进行分析,从而不需要对全部的目标函数进行提取分析,区别与现有技术中对全部目标函数进行分析,提高了性能分析的效率。
其中,处理器120可以执行图3所示方法中的步骤。图3是示出了根据本申请一实施例的性能分析方法的示意性流程图,应用于服务器,包括步骤301至步骤302。
步骤301:根据目标程序的特征标识,将预存的与所述目标程序的特征标识对应的至少一个目标函数信息发送至终端。
在本申请实施例中,所述目标程序可以是运行在智能手机、台式电脑或平板电脑等终端设备上的游戏、应用(APP)或其他需要进行性能测试的程序,服务器根据目标程序的特征标识,根据终端侧的请求将预存在服务器内的与所述目标程序的特征标识对应的至少一个目标函数信息发送至所述终端。
步骤302:接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
在本申请实施例中,服务器接收并分析至少一个目标函数的性能数据,从而得到所述目标程序的性能分析结果,基于所述目标函数的性能分析结果进而得到所述目标程序的性能分析结果。
本申请根据目标程序的特征标识对应的目标函数信息,获取所述目标程序中用于进行性能测试的目标函数,从而实现了目标函数与目标程序的稳定的映射关系,避免出现目标函数提取不到的问题。
在本申请的一个实施例中,如图4所示,所述方法还包括步骤401至步骤403:
步骤401:获取目标程序的符号文件。
步骤402:提取并记录所述符号文件中包含的至少一个目标函数信息。
步骤403:根据所述目标程序的特征标识存储所述至少一个目标函数信息。
在本申请的一个实施例中,服务器可以获取所述目标程序的符号文件,所述符号文件是源代码与机器代码之间的对应关系,所述符号文件包含有目标函数的目标函数信息,然后,服务器可以从符号文件中提取并记录其包含的至少一个目标函数信息,最后,根据所述目标程序的特征标识将所述至少一个目标函数信息存储至服务器内。
本申请通过分析所述目标程序的符号文件从而提取出目标函数信息,实现了将所述目标函数信息按照特征标识进行记录,再通过目标函数信息获取目标程序的需要进行性能测试的目标函数,解决了现有技术无法解决的由于目标函数地址变更导致需要进行性能测试的目标函数获取失败的问题。
在本申请的一个实施例中,根据所述目标程序的特征标识存储所述至少一个目标函数信息包括:
按照所述目标程序当前的运行版本,存储所述目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
在上述实施例中,由于所述目标程序在进行版本更新时,每编译一次,所述目标函数的目标函数信息都会发生改变,因此,服务器可以按照所述目标程序每个运行版本存储对应版本的所述目标函数信息,例如,一个游戏程序在初始公测的版本为1.0.0,在需要进行性能测试时的版本为1.0.3,则所述服务器可以依次存储版本为1.0.0对应的游戏程序中的至少一个目标函数信息、版本为1.0.2对应的游戏程序中的至少一个目标函数信息以及版本为1.0.3对应的目标函数信息,从而在服务器内保存有多个版本对应的目标程序的至少一个目标函数信息,所述目标函数信息包括目标函数名和地址信息,比如LOGIN、TraceLog和TEST等等。
在本申请的一个实施例中,分析至少一个目标函数的性能数据包括:
根据所述目标函数的消耗时间信息、关键参数信息和运行结果信息对所述目标函数进行分析。
在上述实施例中,所述消耗时间可以是所述目标程序调用所述至少一个目标函数的消耗时间,所述关键参数信息可以是所述至少一个目标函数的必选参数、默认参数、可变参数或关键字参数等信息。
在本申请的一个实施例中,在得到所述目标程序的性能分析结果之后,还包括:
S1、存储所述目标程序的性能分析结果。
S2、对所述目标程序的性能分析结果进行格式化和可视化处理。
在上述实施例中,服务器可以对所述目标程序的性能分析结果进行存储和展示,即对所述目标程序的性能分析结果进行标注格式化处理以及根据用户的需求进行可视化处理,其中,可视化处理的方式可以是通过网页进行展示。
在本申请的一个实施例中,所述方法还包括:
在所述预存的至少一个目标函数信息的数据量大于阈值的情况下,对所述预存的至少一个目标函数信息进行处理。
在上述实施例中,服务器可以对存储在服务器内的至少一个目标函数信息的数据量进行管理和控制,即通过设置阈值的方式对所述预存的至少一个目标函数信息进行处理,从而控制数据分析的规模,提高分析的灵活度,例如,对于一个版本为5.0.1版本的目标程序A,则在所述服务器中对应存储有目标程序A由版本1.0.1至版本5.0.1中全部版本对应的目标函数信息,其数据量超过了预设阈值,则服务器将会对所述目标程序A对应的目标函数信息进行删除,比如删去版本1.0.1至版本3.0.1中对应的目标函数信息。
本申请根据目标程序的特征标识和目标函数信息对所述目标程序进行性能分析的方法,实现了目标函数的动态分析、动态调整以及自动出目标程序的性能测试结果,即用户可以根据性能分析的需要进行选择性分析而无须分析所有的目标函数,无需反复多次修改目标程序,一次开发完成就可以适用于多个不同版本目标程序的分析,减少开发工作量。
此外,针对多次编译有很多版本的情况,本申请通过版本比较可以很方便地实现版本间的数据对比,性能分析,然而现有技术则必须在每次进行一个新的版本运行时,均需要进行重新提取记录相关目标函数,无法实现本申请自动记录版本号并进行统一自动提取相关目标函数的功能。
其中,处理器120可以执行图5所示方法中的步骤。图5是示出了根据本申请一实施例的性能分析方法的示意性流程图,包括步骤501至步骤505。
步骤501:终端运行目标程序,获取所述目标程序的特征标识。
步骤502:所述终端根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息。
步骤503:所述终端根据所述至少一个目标函数信息获取对应的至少一个目标函数。
步骤504:所述终端记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
步骤505:所述服务器接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
上述步骤与前文所述实施例的内容相同,请参见前文所述实施例,本申请在此不再赘述。
本申请的性能分析方法通过从服务器下载目标程序对应的目标函数信息,利用目标函数信息获取用于测试的目标函数,再将所述目标函数的性能数据返回至服务器从而获得目标程序的性能测试结果。同时,本申请根据目标程序的特征标识对应的目标函数信息,获取所述目标程序中用于进行性能测试的目标函数,从而实现了目标函数与目标程序的稳定的映射关系,避免出现目标函数提取不到的问题。
与上述方法实施例相对应,本说明书还提供了性能分析装置实施例,图6示出了本说明书一个实施例的性能分析装置的结构示意图。如图6所示,该装置内置于终端,包括:
运行模块601,被配置为运行目标程序,获取所述目标程序的特征标识;
第一获取模块602,被配置为根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;
第二获取模块603,被配置为根据所述至少一个目标函数信息获取对应的至少一个目标函数;
数据记录模块604,被配置为记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
可选的,所述第一获取模块601包括:
第一获取子单元,被配置为根据所述目标程序当前的运行版本,从服务器获取与所述目标程序当前的运行版本对应的至少一个目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
可选的,所述第二获取模块603包括:
第二获取子单元,被配置为根据所述至少一个目标函数信息中的地址信息,在所述目标程序中钩取与所述地址信息对应的目标函数名相匹配的目标函数。
可选的,所述数据记录模块604包括:
数据记录子单元,被配置为记录所述至少一个目标函数的消耗时间信息、关键参数信息和运行结果信息。
可选的,所述第二获取模块603包括:
列表匹配单元,被配置为调取预存的函数列表,基于所述至少一个目标函数信息和所述函数列表确定需要获取的至少一个目标函数名;
钩取单元,被配置为在所述目标程序中钩取与所述需要获取的至少一个目标函数名相匹配的目标函数。
可选的,所述函数列表包括目标函数名以及目标函数名对应的性能类别;
所述列表匹配单元包括:
类别匹配单元,被配置为基于所述至少一个目标函数信息以及需要分析的性能类别,在所述函数列表中确定需要获取的至少一个目标函数名。
本申请的性能分析方法通过从服务器下载目标程序对应的目标函数信息,利用目标函数信息获取用于测试的目标函数,再将所述目标函数的性能数据返回至服务器从而获得目标程序的性能测试结果。
与上述方法实施例相对应,本说明书还提供了性能分析装置实施例,图7示出了本说明书一个实施例的性能分析装置的结构示意图。如图7所示,该装置内置于服务器,包括:
发送模块701,被配置为根据目标程序的特征标识,将预存的与所述目标程序的特征标识对应的至少一个目标函数信息发送至终端;
分析模块702,被配置为接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
所述装置还包括:
符号文件模块703,被配置为获取目标程序的符号文件;
提取记录模块704,被配置为提取并记录所述符号文件中包含的至少一个目标函数信息;
第一存储模块705,被配置为根据所述目标程序的特征标识存储所述至少一个目标函数信息。
可选的,所述第一存储模块705包括:
第一存储单元,被配置为按照所述目标程序当前的运行版本,存储所述目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
可选的,所述分析模块702包括:
分析子单元,被配置为根据所述目标函数的消耗时间信息、关键参数信息和运行结果信息对所述目标函数进行分析。
所述装置还包括:
第二存储模块706,被配置为存储所述目标程序的性能分析结果;
可视化模块707,被配置为对所述目标程序的性能分析结果进行格式化和可视化处理。
所述装置还包括:
管理模块,被配置为在所述预存的至少一个目标函数信息的数据量大于阈值的情况下,对所述预存的至少一个目标函数信息进行处理。
本申请根据目标程序的特征标识对应的目标函数信息,获取所述目标程序中用于进行性能测试的目标函数,从而实现了目标函数与目标程序的稳定的映射关系,避免出现目标函数提取不到的问题。
与上述方法实施例相对应,本说明书还提供了性能分析装置实施例,该装置包括:
运行模块,被配置为运行目标程序,获取所述目标程序的特征标识;
第一获取模块,被配置为根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;
第二获取模块,被配置为根据所述至少一个目标函数信息获取对应的至少一个目标函数;
数据记录模块,被配置为记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器;
分析模块,被配置为接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
本申请的性能分析方法通过从服务器下载目标程序对应的目标函数信息,利用目标函数信息获取用于测试的目标函数,再将所述目标函数的性能数据返回至服务器从而获得目标程序的性能测试结果。同时,本申请根据目标程序的特征标识对应的目标函数信息,获取所述目标程序中用于进行性能测试的目标函数,从而实现了目标函数与目标程序的稳定的映射关系,避免出现目标函数提取不到的问题。
本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如前所述性能分析方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述性能分析方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的性能分析方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述性能分析方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (26)

1.一种性能分析方法,其特征在于,应用于终端,包括:
运行目标程序,获取所述目标程序的特征标识;
根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;
根据所述至少一个目标函数信息获取对应的至少一个目标函数;
记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
2.根据权利要求1所述的方法,其特征在于,根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息包括:
根据所述目标程序当前的运行版本,从服务器获取与所述目标程序当前的运行版本对应的至少一个目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
3.根据权利要求2所述的方法,其特征在于,根据所述至少一个目标函数信息获取对应的至少一个目标函数包括:
根据所述至少一个目标函数信息中的地址信息,在所述目标程序中钩取与所述地址信息对应的目标函数名相匹配的目标函数。
4.根据权利要求1所述的方法,其特征在于,记录所述至少一个目标函数的性能数据包括:
记录所述至少一个目标函数的消耗时间信息、关键参数信息和运行结果信息。
5.根据权利要求1所述的方法,其特征在于,根据所述至少一个目标函数信息获取对应的至少一个目标函数包括:
调取预存的函数列表,基于所述至少一个目标函数信息和所述函数列表确定需要获取的至少一个目标函数名;
在所述目标程序中钩取与所述需要获取的至少一个目标函数名相匹配的目标函数。
6.根据权利要求5所述的方法,其特征在于,所述函数列表包括目标函数名以及目标函数名对应的性能类别;
基于所述至少一个目标函数信息和所述函数列表确定需要获取的至少一个目标函数名,包括:
基于所述至少一个目标函数信息以及需要分析的性能类别,在所述函数列表中确定需要获取的至少一个目标函数名。
7.一种性能分析方法,其特征在于,应用于服务器,包括:
根据目标程序的特征标识,将预存的与所述目标程序的特征标识对应的至少一个目标函数信息发送至终端;
接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
8.根据权利要求7所述的方法,其特征在于,还包括:
获取目标程序的符号文件;
提取并记录所述符号文件中包含的至少一个目标函数信息;
根据所述目标程序的特征标识存储所述至少一个目标函数信息。
9.根据权利要求8所述的方法,其特征在于,根据所述目标程序的特征标识存储所述至少一个目标函数信息包括:
按照所述目标程序当前的运行版本,存储所述目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
10.根据权利要求7所述的方法,其特征在于,分析至少一个目标函数的性能数据包括:
根据所述目标函数的消耗时间信息、关键参数信息和运行结果信息对所述目标函数进行分析。
11.根据权利要求7所述的方法,其特征在于,在得到所述目标程序的性能分析结果之后,还包括:
存储所述目标程序的性能分析结果;
对所述目标程序的性能分析结果进行格式化和可视化处理。
12.根据权利要求7所述的方法,其特征在于,还包括:
在所述预存的至少一个目标函数信息的数据量大于阈值的情况下,对所述预存的至少一个目标函数信息进行处理。
13.一种性能分析装置,其特征在于,内置于终端,包括:
运行模块,被配置为运行目标程序,获取所述目标程序的特征标识;
第一获取模块,被配置为根据所述目标程序的特征标识,从服务器获取与所述目标程序的特征标识对应的至少一个目标函数信息;
第二获取模块,被配置为根据所述至少一个目标函数信息获取对应的至少一个目标函数;
数据记录模块,被配置为记录所述至少一个目标函数的性能数据,并将所述至少一个目标函数的性能数据上传至所述服务器。
14.根据权利要求13所述的装置,其特征在于,所述第一获取模块包括:
第一获取子单元,被配置为根据所述目标程序当前的运行版本,从服务器获取与所述目标程序当前的运行版本对应的至少一个目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
15.根据权利要求14所述的装置,其特征在于,所述第二获取模块包括:
第二获取子单元,被配置为根据所述至少一个目标函数信息中的地址信息,在所述目标程序中钩取与所述地址信息对应的目标函数名相匹配的目标函数。
16.根据权利要求13所述的装置,其特征在于,所述数据记录模块包括:
数据记录子单元,被配置为记录所述至少一个目标函数的消耗时间信息、关键参数信息和运行结果信息。
17.根据权利要求13所述的装置,其特征在于,所述第二获取模块包括:
列表匹配单元,被配置为调取预存的函数列表,基于所述至少一个目标函数信息和所述函数列表确定需要获取的至少一个目标函数名;
钩取单元,被配置为在所述目标程序中钩取与所述需要获取的至少一个目标函数名相匹配的目标函数。
18.根据权利要求17所述的装置,其特征在于,所述函数列表包括目标函数名以及目标函数名对应的性能类别;
所述列表匹配单元包括:
类别匹配单元,被配置为基于所述至少一个目标函数信息以及需要分析的性能类别,在所述函数列表中确定需要获取的至少一个目标函数名。
19.一种性能分析装置,其特征在于,内置于服务器,包括:
发送模块,被配置为根据目标程序的特征标识,将预存的与所述目标程序的特征标识对应的至少一个目标函数信息发送至终端;
分析模块,被配置为接收并分析至少一个目标函数的性能数据,得到所述目标程序的性能分析结果。
20.根据权利要求19所述的装置,其特征在于,还包括:
符号文件模块,被配置为获取目标程序的符号文件;
提取记录模块,被配置为提取并记录所述符号文件中包含的至少一个目标函数信息;
第一存储模块,被配置为根据所述目标程序的特征标识存储所述至少一个目标函数信息。
21.根据权利要求20所述的装置,其特征在于,所述第一存储模块包括:
第一存储单元,被配置为按照所述目标程序当前的运行版本,存储所述目标函数信息,其中,所述目标函数信息包括目标函数名和地址信息。
22.根据权利要求19所述的装置,其特征在于,所述分析模块包括:
分析子单元,被配置为根据所述目标函数的消耗时间信息、关键参数信息和运行结果信息对所述目标函数进行分析。
23.根据权利要求19所述的装置,其特征在于,还包括:
第二存储模块,被配置为存储所述目标程序的性能分析结果;
可视化模块,被配置为对所述目标程序的性能分析结果进行格式化和可视化处理。
24.根据权利要求19所述的装置,其特征在于,还包括:
管理模块,被配置为在所述预存的至少一个目标函数信息的数据量大于阈值的情况下,对所述预存的至少一个目标函数信息进行处理。
25.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-6或者7-12任意一项所述方法的步骤。
26.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-6或者7-12任意一项所述方法的步骤。
CN201910848929.2A 2019-09-09 2019-09-09 一种性能分析方法、装置、计算设备及存储介质 Pending CN110532193A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910848929.2A CN110532193A (zh) 2019-09-09 2019-09-09 一种性能分析方法、装置、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910848929.2A CN110532193A (zh) 2019-09-09 2019-09-09 一种性能分析方法、装置、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN110532193A true CN110532193A (zh) 2019-12-03

Family

ID=68667831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910848929.2A Pending CN110532193A (zh) 2019-09-09 2019-09-09 一种性能分析方法、装置、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN110532193A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124424A (zh) * 2019-12-27 2020-05-08 珠海金山网络游戏科技有限公司 一种算法复杂度分析的方法和装置
CN111158821A (zh) * 2019-12-26 2020-05-15 珠海金山网络游戏科技有限公司 一种任务处理的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160062765A1 (en) * 2014-09-02 2016-03-03 International Business Machines Corporation Identifying semantic differences between source code versions
CN106339321A (zh) * 2016-09-09 2017-01-18 腾讯科技(深圳)有限公司 一种应用程序性能测试方法及装置
CN108076134A (zh) * 2017-10-31 2018-05-25 努比亚技术有限公司 记录信息获取方法、终端、服务器及计算机可读存储介质
CN108549600A (zh) * 2018-03-29 2018-09-18 珠海市魅族科技有限公司 一种性能分析方法及装置、服务器和可读存储介质
CN108959070A (zh) * 2018-06-13 2018-12-07 珠海金山网络游戏科技有限公司 一种基于代码对象的Python钩子函数方法和装置
CN110139118A (zh) * 2019-05-20 2019-08-16 北京字节跳动网络技术有限公司 应用程序的功能运行方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160062765A1 (en) * 2014-09-02 2016-03-03 International Business Machines Corporation Identifying semantic differences between source code versions
CN106339321A (zh) * 2016-09-09 2017-01-18 腾讯科技(深圳)有限公司 一种应用程序性能测试方法及装置
CN108076134A (zh) * 2017-10-31 2018-05-25 努比亚技术有限公司 记录信息获取方法、终端、服务器及计算机可读存储介质
CN108549600A (zh) * 2018-03-29 2018-09-18 珠海市魅族科技有限公司 一种性能分析方法及装置、服务器和可读存储介质
CN108959070A (zh) * 2018-06-13 2018-12-07 珠海金山网络游戏科技有限公司 一种基于代码对象的Python钩子函数方法和装置
CN110139118A (zh) * 2019-05-20 2019-08-16 北京字节跳动网络技术有限公司 应用程序的功能运行方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158821A (zh) * 2019-12-26 2020-05-15 珠海金山网络游戏科技有限公司 一种任务处理的方法和装置
CN111158821B (zh) * 2019-12-26 2023-05-09 珠海金山数字网络科技有限公司 一种任务处理的方法和装置
CN111124424A (zh) * 2019-12-27 2020-05-08 珠海金山网络游戏科技有限公司 一种算法复杂度分析的方法和装置
CN111124424B (zh) * 2019-12-27 2023-09-19 珠海金山数字网络科技有限公司 一种算法复杂度分析的方法和装置

Similar Documents

Publication Publication Date Title
US10572370B2 (en) Test-assisted application programming interface (API) learning
CN107908631A (zh) 数据处理方法、装置、存储介质和计算机设备
CN109447156B (zh) 用于生成模型的方法和装置
CN114422267B (zh) 流量检测方法、装置、设备及介质
CN109376267A (zh) 用于生成模型的方法和装置
CN109976995B (zh) 用于测试的方法和装置
CN110263824A (zh) 模型的训练方法、装置、计算设备及计算机可读存储介质
CN109376534B (zh) 用于检测应用的方法和装置
CN109254914A (zh) 软件开发包测试方法、系统、计算机装置及可读存储介质
CN108459964A (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
CN110532193A (zh) 一种性能分析方法、装置、计算设备及存储介质
CN110244967A (zh) 版本更新方法及装置
CN107276842A (zh) 接口测试方法、装置及电子设备
CN111782524A (zh) 应用测试方法和装置、存储介质和电子装置
CN107360265A (zh) 一种设备唯一标识码获取方法、装置及移动终端
CN111159464B (zh) 一种音频片段的检测方法及相关设备
CN114462040A (zh) 一种恶意软件检测模型训练、恶意软件检测方法及装置
CN114780386A (zh) 软件测试方法、装置、设备及存储介质
CN111694735B (zh) 一种页面性能测试方法、装置、电子设备及存储介质
CN111124541A (zh) 一种配置文件的生成方法、装置、设备及介质
CN115292178A (zh) 测试数据搜索方法、装置、存储介质以及终端
CN109471799A (zh) 一种需求环境的部署方法、装置、存储介质及终端
CN111859985B (zh) Ai客服模型测试方法、装置、电子设备及存储介质
CN108810105A (zh) 用于推送信息、显示信息的方法和设备
CN114282940A (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
CB02 Change of applicant information

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20191203

RJ01 Rejection of invention patent application after publication