CN111290960A - 应用程序的流畅度检测方法、装置、终端及存储介质 - Google Patents

应用程序的流畅度检测方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN111290960A
CN111290960A CN202010112413.4A CN202010112413A CN111290960A CN 111290960 A CN111290960 A CN 111290960A CN 202010112413 A CN202010112413 A CN 202010112413A CN 111290960 A CN111290960 A CN 111290960A
Authority
CN
China
Prior art keywords
fluency
target application
application program
information
module
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.)
Granted
Application number
CN202010112413.4A
Other languages
English (en)
Other versions
CN111290960B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010112413.4A priority Critical patent/CN111290960B/zh
Publication of CN111290960A publication Critical patent/CN111290960A/zh
Application granted granted Critical
Publication of CN111290960B publication Critical patent/CN111290960B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • 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/3684Test management for test design, e.g. generating new test cases

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)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种应用程序的流畅度检测方法、装置、终端及存储介质,属于软件测试技术领域。所述方法包括:运行目标应用程序,目标应用程序是基于游戏引擎运行的游戏应用程序;在目标应用程序的运行过程中,通过游戏引擎获取目标应用程序的至少一个功能模块的流畅度信息;根据流畅度信息,生成目标应用程序的流畅度检测结果。本申请实施例使得流程度检测结果中可以包含各个功能模块的流畅度信息,这样就可以明确地体现出流畅度不佳的功能模块,为流畅度优化指明方向,提升应用流畅度优化的效率。

Description

应用程序的流畅度检测方法、装置、终端及存储介质
技术领域
本申请实施例涉及软件测试技术领域,特别涉及一种应用程序的流畅度检测方法、装置、终端及存储介质。
背景技术
游戏应用程序的运行流畅度会直接关系到用户使用时的产品体验。因此,在游戏应用程序的版本发布之前,会对游戏应用程序进行流畅度检测,在检测达标后才会正式发布。
在相关技术中,通过使用游戏引擎的开发版本,构建游戏应用程序的开发测试版本,将该游戏应用程序的开发测试版本在手机上安装运行,并通过USB(Universal SerialBus,通用串行总线)将手机与测试人员使用的电脑相连接。在电脑上打开Unity编辑器,接收手机传递过来的采样数据,然后测试人员在Unity编辑器中观察采样数据,以对游戏应用程序的流畅度进行分析。
目前,测试人员只能获知游戏应用程序的流畅度,但当该游戏应用程序的流畅度不佳时,测试人员并不能够获知造成流畅度不佳的原因,进而导致对应用流畅度优化的效率低。
发明内容
本申请实施例提供了一种应用程序的流畅度检测方法、装置、终端及存储介质,能够帮助测试人员定位流畅度不佳的原因,提升应用流畅度优化的效率。
所述技术方案如下:
一方面,本申请实施例提供了一种应用程序的流畅度检测方法,所述方法包括:
运行目标应用程序,所述目标应用程序是基于游戏引擎运行的游戏应用程序;
在所述目标应用程序的运行过程中,通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息,所述流畅度信息用于指示执行所述功能模块时的流畅度;
根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果。
另一方面,本申请实施例提供了一种应用程序的流畅度检测装置,所述装置包括:
应用运行模块,用于运行目标应用程序,所述目标应用程序是基于游戏引擎运行的游戏应用程序;
信息获取模块,用于在所述目标应用程序的运行过程中,通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息,所述流畅度信息用于指示执行所述功能模块时的流畅度;
结果生成模块,用于根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果。
再一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述应用程序的流畅度检测方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述应用程序的流畅度检测方法。
还一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述应用程序的流畅度检测方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过在游戏应用程序的运行过程中,通过游戏引擎获取该游戏应用程序的至少一个功能模块的流畅度信息,并据此生成该游戏应用程序的流畅度检测结果,使得流程度检测结果中可以包含各个功能模块的流畅度信息,这样就可以明确地体现出流畅度不佳的功能模块,为流畅度优化指明方向,提升应用流畅度优化的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的应用程序的流畅度检测方法的流程图;
图3是本申请一个实施例提供的各功能模块的执行耗时的示意图;
图4是本申请另一个实施例提供的应用程序的流畅度检测方法的流程图;
图5是图4实施例中步骤403的流程图;
图6是本申请一个实施例提供的应用程序的流畅度检测装置的框图;
图7是本申请另一个实施例提供的应用程序的流畅度检测装置的框图;
图8是本申请一个实施例提供的终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:终端120和后台设备140。
终端120可以是诸如手机、平板电脑、多媒体播放设备、游戏主机、PC(PersonalComputer,个人计算机)等电子设备。终端120中可以安装运行目标应用程序,该目标应用程序是基于游戏引擎运行的游戏应用程序,且该目标应用程序可以是正式发布版本,而非内部开发版本。在本申请实施例中,对游戏应用程序的类型不作限定,例如其可以是射击类游戏、MOBA(Multiplayer Online Battle Arena,多人在线战术竞技)类游戏、RPG(Role-playing Game,角色扮演游戏)等等。终端120为普通用户所使用的用户设备。
后台设备140可以是PC,是指由目标应用程序的后台技术人员(如测试人员、开发人员等)所使用的计算机设备。
终端120和后台设备140之间可以通过网络进行直接或者间接地连接。其中,间接连接是指终端120和后台设备140之间并不直接建立通信连接,而是通过其它中转设备建立通信连接。例如,终端120可以通过网络与目标应用程序的后台服务器建立第一通信连接,后台设备140也可以通过网络与目标应用程序的后台服务器建立第二通信连接,这样,终端120和后台设备140之间就通过后台服务器实现了间接连接。直接连接是指终端120和后台设备140之间直接建立通信连接,中间并不存在中转设备。
终端120可以在目标应用程序的运行过程中,采集流畅度信息并生成该目标应用程序的流畅度检测结果,然后将该流畅度检测结果发送给后台设备140。后台设备140可以将该目标应用程序的流畅度检测结果进行展示,以便后台技术人员获知该流畅度检测结果。
请参考图2,其示出了本申请一个实施例提供的应用程序的流畅度检测方法的流程图。该方法的执行主体可以是上文介绍的实施环境中的终端120。该方法可以包括如下几个步骤(201~203):
步骤201,运行目标应用程序,目标应用程序是基于游戏引擎运行的游戏应用程序。
游戏引擎是指一些已编写好的可编辑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏应用程序而不用由零开始。游戏引擎是一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。游戏引擎可用于为目标应用程序提供一些基础的代码集、工具集等集合库,目标应用程序在运行时能够利用上述集合库进行运行。可选地,游戏引擎可以是Unity 3d游戏引擎。
步骤202,在目标应用程序的运行过程中,通过游戏引擎获取目标应用程序的至少一个功能模块的流畅度信息。
流畅度信息用于指示执行功能模块时的流畅度。可选地,功能模块的流畅度信息包括:基于功能模块的起始执行时刻与结束执行时刻所确定的执行耗时。功能模块的执行流畅度,可以由该功能模块的执行耗时来反映。通过获取该功能模块的起始执行时刻与结束执行时刻,计算该起始执行时刻与结束执行时刻之间的时间差,即可以得到该功能模块的执行耗时。起始执行时刻可以是该功能模块开始执行时的CPU(Central ProcessingUnit,中央处理器)时间,结束执行时刻可以是该功能模块执行完成时的CPU时间。
功能模块是指用于实现目标应用程序的某项功能的软件模块。可选地,上述至少一个功能模块包括但不限于以下至少一项:主线程模块、主线程的脚本更新模块、主线程的粒子更新模块、主线程的动画更新模块、主线程的界面更新模块、主线程的CPU渲染模块、主线程的相机更新模块,以及GPU(Graphics Processing Unit,图形处理器)渲染线程模块。当然,此处所述的功能模块仅是示例性和解释性的,在不同应用程序中,可以根据应用程序所要实现的产品功能,设计不同的功能模块。
在本申请实施例中,通过对目标应用程序的功能进行细粒度的划分,划分为一个个功能模块,然后分别获取每个功能模块的流畅度信息,从而对流畅度信息的统计更加细致化,使得后台技术人员能够获知每个功能模块的流畅度信息。另外,后台技术人员可以结合项目实际情况,确定出耗时负载较高(如耗时负载大于阈值)的功能模块,然后通过游戏引擎获取这部分耗时负载较高的功能模块的流畅度信息。
结合参考图3,游戏引擎采集目标应用程序的多个功能模块的执行耗时,包括主线程模块的耗时、脚本更新模块的耗时、粒子更新模块的耗时、动画更新模块的耗时、界面更新模块的耗时、CPU渲染模块(线程)的耗时、相机更新模块的耗时、GPU渲染线程的耗时等,然后基于该多个功能模块的执行耗时,生成目标应用程序的流畅度检测结果。
步骤203,根据流畅度信息,生成目标应用程序的流畅度检测结果。
目标应用程序的流畅度检测结果用于反映该目标应用程序的流畅度是否达标。目标应用程序的流畅度检测结果中可以包括该目标应用程序的平均帧率,即FPS(Frames PerSecond,每秒传输帧数),以反映该目标应用程序的流畅度是否达标。另外,目标应用程序的流畅度检测结果中,还包括各个功能模块的流畅度信息,以分别体现各个功能模块的流畅度是否达标。这样,后台技术人员在得到该目标应用程序的流畅度检测结果之后,不仅能够得到该目标应用程序的平均帧率,还能够得到该目标应用程序的各个功能模块的执行耗时,这样就可以明确地获知流畅度不佳的功能模块,为流畅度优化指明方向。
另外,游戏引擎在生成流畅度检测结果之后,可以将该流畅度检测结果存储在终端本地存储介质中,也可以通过网络向目标设备(如上文介绍的后台设备)发送该流畅度检测结果。例如,游戏引擎可以将流畅度检测结果实时地存储在终端本地存储介质中,并定期向后台设备发送最近获取到的流畅度检测结果。
示例性地,流畅度检测结果所包括的信息可以如下表1所示:
表1
Figure BDA0002390484540000061
在表1中,在同一个终端机型(也即终端机型1)上,分别运行目标应用程序的两个不同版本(即应用版本1和应用版本2),获取到该应用版本1的平均FPS和应用版本2的平均FPS。另外,还获取到应用版本1的各个功能模块的执行耗时,以及应用版本2的各个功能模块的执行耗时。与此同时,还可以输出应用版本1和应用版本2的平均FPS的差值,以及各个功能模块的执行耗时的差值。
综上所述,本申请实施例提供的技术方案,通过在游戏应用程序的运行过程中,通过游戏引擎获取该游戏应用程序的至少一个功能模块的流畅度信息,并据此生成该游戏应用程序的流畅度检测结果,使得流程度检测结果中可以包含各个功能模块的流畅度信息,这样就可以明确地体现出流畅度不佳的功能模块,为流畅度优化指明方向,提升应用流畅度优化的效率。
另外,在相关技术中,由于游戏应用程序的开发测试版本中,附带了非常多与调试相关的额外逻辑,这些额外逻辑本身会带来负载,导致基于该开发测试版本获取到的采样数据,无法真实地反映出正式发布版本的流畅度。本申请实施例提供的技术方案,通过游戏引擎直接获取游戏应用程序的正式发布版本的流畅度信息,能够克服相关技术所存在的上述问题,提升流畅度检测的准确性。
另外,本申请实施例提供的技术方案,不需要通过USB线来传输采样数据,终端可以灵活保存并按需向后台设备发送流畅度检测结果,提升了灵活性,且克服了USB连接所带来的数据传输的不稳定性。
请参考图4,其示出了本申请另一个实施例提供的应用程序的流畅度检测方法的流程图。该方法可以包括如下几个步骤(401~405):
步骤401,运行目标应用程序,目标应用程序是基于游戏引擎运行的游戏应用程序。
步骤402,通过游戏引擎执行自定义脚本,该自定义脚本用于确定是否开启流畅度信息的获取功能。
该自定义脚本可以是由后台技术人员预先置入游戏引擎的脚本。通过执行该自定义脚本,游戏引擎能够确定是否开启流畅度信息的获取功能。例如,该自定义脚本可以定义流畅度信息的获取功能的开启时间段,在该开启时间段内,开启流畅度信息的获取功能。可选地,该自定义脚本可以是一个C#语言脚本。
步骤403,若根据自定义脚本确定开启流畅度信息的获取功能,则在目标应用程序的运行过程中,通过游戏引擎执行采集功能逻辑,获取目标应用程序的至少一个功能模块的流畅度信息。
若根据自定义脚本确定开启流畅度信息的获取功能,则在目标应用程序的运行过程中,游戏引擎获取该目标应用程序的至少一个功能模块的流畅度信息;若根据自定义脚本确定开启流畅度信息的获取功能,则在目标应用程序的运行过程中,游戏引擎不执行获取该目标应用程序的至少一个功能模块的流畅度信息的步骤,正常运行该目标应用程序即可。
采集功能逻辑是用于实现流畅度信息的获取功能的代码逻辑,该采集功能逻辑可以采用C#语言编写。游戏引擎通过执行该采集功能逻辑,便可获取目标应用程序的至少一个功能模块的流畅度信息。
在示例性实施例中,如图5所示,以获取目标应用程序的第n(n为正整数)帧的流畅度信息为例,步骤403可以包括如下几个子步骤:
步骤403a,响应于目标应用程序的第n帧开始,执行第n帧对应的应用处理逻辑;
步骤403b,在应用处理逻辑的执行过程中,通过游戏引擎执行采集功能逻辑,获取目标应用程序的至少一个功能模块在第n帧的流畅度信息;
步骤403c,响应于应用处理逻辑执行完成且第n帧的流畅度信息采集完成,执行业务层注册的回调函数,该业务层的业务逻辑在回调函数中向游戏引擎获取第n帧的流畅度信息。
在本申请实施例中,通过对游戏引擎进行改造,插入采集功能逻辑,通过游戏引擎执行该采集功能逻辑以获取目标应用程序的至少一个功能模块在第n帧的流畅度信息。有关功能模块和流畅度信息的介绍说明,可参见上文实施例,本实施例对此不再赘述。
在本申请实施例中,在执行第n帧对应的应用处理逻辑的过程中,同步执行采集功能逻辑,以获取应用处理逻辑执行过程中产生的各个功能模块的流畅度信息;并且,当第n帧对应的应用处理逻辑执行完成之后,再停止执行采集功能逻辑,能够保证获取结果的完整性和准确性。在第n帧对应的应用处理逻辑执行完成且该第n帧的流畅度信息采集完成之后,执行业务层注册的回调函数,业务层的业务逻辑在该回调函数中向游戏引擎获取第n帧的流畅度信息。之后,业务层的业务逻辑可以按照预定义的操作,将获取到的流畅度信息保存到本地或者发送给后台设备进行归档。另外,对于每一帧,可以重复上述步骤403a~403c的流程,以分别获取各个功能模块在各个帧的流畅度信息。然后,对于每个功能模块,通过求取该功能模块在多个帧的流畅度信息的平均值,便能够获取该功能模块的平均流畅度信息,将该功能模块的平均流畅度信息作为流畅度是否达标的评价指标。
步骤404,根据流畅度信息,确定流畅度不达标的功能模块。
在获取各个功能模块的平均流畅度信息之后,游戏引擎可以确定流畅度不达标的功能模块。例如,针对每个功能模块,可以制定相应的流畅度是否达标的指标,当某一功能模块的平均流畅度信息达到相应指标时,确定该功能模块的流畅度达标;反之,当某一功能模块的平均流畅度信息未达到相应指标时,确定该功能模块的流畅度不达标。
步骤405,在目标应用程序的流畅度检测结果中,标识流畅度不达标的功能模块。
目标应用程序的流畅度检测结果用于反映该目标应用程序的流畅度是否达标。目标应用程序的流畅度检测结果中可以包括该目标应用程序的平均帧率,以反映该目标应用程序的流畅度是否达标。另外,目标应用程序的流畅度检测结果中,还包括各个功能模块的流畅度信息,以分别体现各个功能模块的流畅度是否达标。另外,对于流畅度不达标的功能模块,可以直接在流畅度检测结果中标识出来,实现自动化地标识检测流畅度未达标的功能模块,以便于后台技术人员能够更加高效地获知流畅度未达标的功能模块。
综上所述,本申请实施例提供的技术方案,通过在游戏应用程序的运行过程中,通过游戏引擎获取该游戏应用程序的至少一个功能模块的流畅度信息,并据此生成该游戏应用程序的流畅度检测结果,使得流程度检测结果中可以包含各个功能模块的流畅度信息,这样就可以明确地体现出流畅度不佳的功能模块,为流畅度优化指明方向,提升应用流畅度优化的效率。
另外,在每一帧对应的应用处理逻辑执行过程中,同步执行采集功能逻辑,以获取应用处理逻辑执行过程中产生的各个功能模块的流畅度信息,当该帧对应的应用处理逻辑执行完成时,停止执行采集功能逻辑,能够保证获取结果的完整性和准确性。
另外,流畅度信息的获取功能具备动态开启和关闭的能力,更具灵活性,且能够实现按需使用流畅度信息的获取功能。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请一个实施例提供的应用程序的流畅度检测装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端,也可以设置在终端中。该装置600可以包括:应用运行模块610、信息获取模块620和结果生成模块630。
应用运行模块610,用于运行目标应用程序,所述目标应用程序是基于游戏引擎运行的游戏应用程序。
信息获取模块620,用于在所述目标应用程序的运行过程中,通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息,所述流畅度信息用于指示执行所述功能模块时的流畅度。
结果生成模块630,用于根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果。
综上所述,本申请实施例提供的技术方案,通过在游戏应用程序的运行过程中,通过游戏引擎获取该游戏应用程序的至少一个功能模块的流畅度信息,并据此生成该游戏应用程序的流畅度检测结果,使得流程度检测结果中可以包含各个功能模块的流畅度信息,这样就可以明确地体现出流畅度不佳的功能模块,为流畅度优化指明方向,提升应用流畅度优化的效率。
在示例性实施例中,所述功能模块的流畅度信息包括:基于所述功能模块的起始执行时刻与结束执行时刻所确定的执行耗时。
在示例性实施例中,所述游戏引擎包括用于获取所述流畅度信息的采集功能逻辑。所述信息获取模块620,用于通过所述游戏引擎执行所述采集功能逻辑,获取所述目标应用程序的至少一个功能模块的流畅度信息。
在示例性实施例中,所述信息获取模块620,用于:
响应于所述目标应用程序的第n帧开始,执行所述第n帧对应的应用处理逻辑,所述n为正整数;
在所述应用处理逻辑的执行过程中,通过所述游戏引擎执行所述采集功能逻辑,获取所述目标应用程序的至少一个功能模块在所述第n帧的流畅度信息;
响应于所述应用处理逻辑执行完成且所述第n帧的流畅度信息采集完成,执行业务层注册的回调函数,所述业务层的业务逻辑在所述回调函数中向所述游戏引擎获取所述第n帧的流畅度信息。
在示例性实施例中,所述至少一个功能模块包括以下至少一项:主线程模块、主线程的脚本更新模块、主线程的粒子更新模块、主线程的动画更新模块、主线程的界面更新模块、主线程的CPU渲染模块、主线程的相机更新模块,以及GPU渲染线程模块。
在示例性实施例中,所述结果生成模块630,用于:
根据所述流畅度信息,确定流畅度不达标的功能模块;
在所述目标应用程序的流畅度检测结果中,标识所述流畅度不达标的功能模块。
在示例性实施例中,如图7所示,所述装置600还包括:脚本执行模块640。
脚本执行模块640,用于通过所述游戏引擎执行自定义脚本,所述自定义脚本用于确定是否开启所述流畅度信息的获取功能。
所述信息获取模块620,还用于在根据所述自定义脚本确定开启所述流畅度信息的获取功能的情况下,通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息。
在示例性实施例中,如图7所示,所述装置600还包括:信息存储模块650和/或信息发送模块660。
信息存储模块650,用于将所述流畅度检测结果存储在本地存储介质中。
信息发送模块660,用于通过网络向目标设备发送所述流畅度检测结果。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图8,其示出了本申请一个实施例提供的终端800的结构框图。该终端800可以是手机、平板电脑、可穿戴设备、多媒体播放设备、游戏主机、PC等电子设备。
通常,终端800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU,GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集用于被处理器801所执行以实现上述应用程序的流畅度检测方法。
在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备可以包括:射频电路804、触摸显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。
本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被终端的处理器执行时以实现上述应用程序的流畅度检测方法。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品被终端的处理器执行时,用于实现上述应用程序的流畅度检测方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种应用程序的流畅度检测方法,其特征在于,所述方法包括:
运行目标应用程序,所述目标应用程序是基于游戏引擎运行的游戏应用程序;
在所述目标应用程序的运行过程中,通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息,所述流畅度信息用于指示执行所述功能模块时的流畅度;
根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果。
2.根据权利要求1所述的方法,其特征在于,所述功能模块的流畅度信息包括:基于所述功能模块的起始执行时刻与结束执行时刻所确定的执行耗时。
3.根据权利要求1所述的方法,其特征在于,所述游戏引擎包括用于获取所述流畅度信息的采集功能逻辑;
所述通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息,包括:
通过所述游戏引擎执行所述采集功能逻辑,获取所述目标应用程序的至少一个功能模块的流畅度信息。
4.根据权利要求3所述的方法,其特征在于,所述通过所述游戏引擎执行所述采集功能逻辑,获取所述目标应用程序的至少一个功能模块的流畅度信息,包括:
响应于所述目标应用程序的第n帧开始,执行所述第n帧对应的应用处理逻辑,所述n为正整数;
在所述应用处理逻辑的执行过程中,通过所述游戏引擎执行所述采集功能逻辑,获取所述目标应用程序的至少一个功能模块在所述第n帧的流畅度信息;
响应于所述应用处理逻辑执行完成且所述第n帧的流畅度信息采集完成,执行业务层注册的回调函数,所述业务层的业务逻辑在所述回调函数中向所述游戏引擎获取所述第n帧的流畅度信息。
5.根据权利要求1所述的方法,其特征在于,所述至少一个功能模块包括以下至少一项:主线程模块、主线程的脚本更新模块、主线程的粒子更新模块、主线程的动画更新模块、主线程的界面更新模块、主线程的中央处理器CPU渲染模块、主线程的相机更新模块,以及图形处理器GPU渲染线程模块。
6.根据权利要求1所述的方法,其特征在于,所述根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果,包括:
根据所述流畅度信息,确定流畅度不达标的功能模块;
在所述目标应用程序的流畅度检测结果中,标识所述流畅度不达标的功能模块。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
通过所述游戏引擎执行自定义脚本,所述自定义脚本用于确定是否开启所述流畅度信息的获取功能;
若根据所述自定义脚本确定开启所述流畅度信息的获取功能,则执行所述通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息的步骤。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果之后,还包括:
将所述流畅度检测结果存储在本地存储介质中;
或者,
通过网络向目标设备发送所述流畅度检测结果。
9.一种应用程序的流畅度检测装置,其特征在于,所述装置包括:
应用运行模块,用于运行目标应用程序,所述目标应用程序是基于游戏引擎运行的游戏应用程序;
信息获取模块,用于在所述目标应用程序的运行过程中,通过所述游戏引擎获取所述目标应用程序的至少一个功能模块的流畅度信息,所述流畅度信息用于指示执行所述功能模块时的流畅度;
结果生成模块,用于根据所述流畅度信息,生成所述目标应用程序的流畅度检测结果。
10.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至8任一项所述的方法。
CN202010112413.4A 2020-02-24 2020-02-24 应用程序的流畅度检测方法、装置、终端及存储介质 Active CN111290960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010112413.4A CN111290960B (zh) 2020-02-24 2020-02-24 应用程序的流畅度检测方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010112413.4A CN111290960B (zh) 2020-02-24 2020-02-24 应用程序的流畅度检测方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN111290960A true CN111290960A (zh) 2020-06-16
CN111290960B CN111290960B (zh) 2021-08-10

Family

ID=71024599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010112413.4A Active CN111290960B (zh) 2020-02-24 2020-02-24 应用程序的流畅度检测方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN111290960B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111754196A (zh) * 2020-06-29 2020-10-09 苏州美能华智能科技有限公司 残疾辅具申请流程的配置方法、装置及存储介质
CN115454989A (zh) * 2022-09-29 2022-12-09 深圳市手心游戏科技有限公司 一种应用程序数据的数据处理方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559130A (zh) * 2013-11-01 2014-02-05 百度在线网络技术(北京)有限公司 浏览器流畅度的测试方法和装置
CN104679649A (zh) * 2013-11-29 2015-06-03 腾讯科技(深圳)有限公司 一种软件流畅度测试方法和测试装置
CN105320584A (zh) * 2015-03-31 2016-02-10 维沃移动通信有限公司 一种终端流畅度的测试方法及其终端
CN106341436A (zh) * 2015-07-08 2017-01-18 深圳市腾讯计算机系统有限公司 加速效果的检测方法及装置
CN107741897A (zh) * 2017-09-11 2018-02-27 广州市百果园信息技术有限公司 应用程序流畅度检测方法、装置及智能终端
US20180286430A1 (en) * 2015-10-09 2018-10-04 Ninispeech Ltd. Speech efficiency score
US20180373612A1 (en) * 2017-06-23 2018-12-27 New Relic, Inc. Adaptive application performance analysis

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559130A (zh) * 2013-11-01 2014-02-05 百度在线网络技术(北京)有限公司 浏览器流畅度的测试方法和装置
CN104679649A (zh) * 2013-11-29 2015-06-03 腾讯科技(深圳)有限公司 一种软件流畅度测试方法和测试装置
CN105320584A (zh) * 2015-03-31 2016-02-10 维沃移动通信有限公司 一种终端流畅度的测试方法及其终端
CN106341436A (zh) * 2015-07-08 2017-01-18 深圳市腾讯计算机系统有限公司 加速效果的检测方法及装置
US20180286430A1 (en) * 2015-10-09 2018-10-04 Ninispeech Ltd. Speech efficiency score
US20180373612A1 (en) * 2017-06-23 2018-12-27 New Relic, Inc. Adaptive application performance analysis
CN107741897A (zh) * 2017-09-11 2018-02-27 广州市百果园信息技术有限公司 应用程序流畅度检测方法、装置及智能终端

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111754196A (zh) * 2020-06-29 2020-10-09 苏州美能华智能科技有限公司 残疾辅具申请流程的配置方法、装置及存储介质
CN111754196B (zh) * 2020-06-29 2024-05-03 苏州美能华智能科技有限公司 残疾辅具申请流程的配置方法、装置及存储介质
CN115454989A (zh) * 2022-09-29 2022-12-09 深圳市手心游戏科技有限公司 一种应用程序数据的数据处理方法和装置
CN115454989B (zh) * 2022-09-29 2023-12-08 深圳市手心游戏科技有限公司 一种应用程序数据的数据处理方法和装置

Also Published As

Publication number Publication date
CN111290960B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN104750603B (zh) 一种多核dsp软件仿真器及其物理层软件测试方法
CN109032879B (zh) 多核处理器访存数据检测验证系统及方法
US9262299B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
CN111290960B (zh) 应用程序的流畅度检测方法、装置、终端及存储介质
WO2015043527A1 (zh) 电子设备性能的测试方法及装置
US9262305B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
CN109966742B (zh) 游戏运行中获取渲染性能数据的方法及装置
CN112732576B (zh) 基于用户界面的自动化测试方法、装置及设备
CN111989655B (zh) 一种soc芯片、确定热点函数的方法及终端设备
CN112346935B (zh) 渲染耗时的获取、显示方法、性能监控方法、装置及设备
CN112597064B (zh) 对程序进行仿真的方法、电子设备及存储介质
US11813538B2 (en) Videogame telemetry data and game asset tracker for session recordings
US8700380B2 (en) Method for generating performance evaluation model
CN108717354B (zh) 手机游戏渲染数据的采集方法、装置及存储设备
US10372571B2 (en) Method and apparatus for testing compatibility of 3D engine
CN111708704B (zh) 一种云真机测试方法、装置、终端及存储介质
Aversa et al. Unity Game Optimization: Enhance and extend the performance of all aspects of your Unity games
CN116974872A (zh) Gpu卡性能测试方法、装置、电子设备及可读存储介质
CN111949510B (zh) 测试处理方法、装置、电子设备及可读存储介质
CN112380800A (zh) 自动评测的在线fpga实验平台及相关方法
Dickinson Unity 2017 Game Optimization: Optimize All Aspects of Unity Performance
CN110737900A (zh) 网页功能测试方法及装置、服务器和计算机可读存储介质
CN115827457A (zh) 浏览器兼容性测试方法以及相关设备
CN111459547B (zh) 一种函数调用链路的展示方法和装置
CN109840213B (zh) 一种gui测试的测试数据创建方法、装置、终端及存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024098

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant