一种检测游戏卡顿帧的方法及装置与流程

文档序号:17817364发布日期:2019-06-05 21:54

技术特征:

1.一种检测游戏卡顿帧的方法,适用于基于虚幻4引擎的游戏,其特征在于,该方法包括如下步骤:

使用hook函数监控FEngineLoop::Tick函数的调用,计算每帧调用FEngineLoop::Tick函数的时长得到对应的帧耗时,并记录所有帧的帧耗时;

查找帧耗时超过游戏设定帧速率对应的单帧时长的帧。

2.根据权利要求1所述的检测游戏卡顿帧的方法,其特征在于,所述使用hook函数监控FEngineLoop::Tick函数的调用之前还包括:

通过测试工具启动运行游戏并从游戏服务器获取游戏线程;

测试工具在游戏线程中安装自定义的hook函数。

3.根据权利要求2所述的检测游戏卡顿帧的方法,其特征在于,所述hook函数用于执行:

FEngineLoop::Tick函数被调用前,记录当前系统时间为帧开始时间;

调用FEngineLoop::Tick函数刷新帧;

FEngineLoop::Tick函数调用返回时再次记录当前系统时间为帧结束时间;

计算帧结束时间与帧开始时间的差值,得到该帧的帧耗时。

4.根据权利要求2所述的检测游戏卡顿帧的方法,其特征在于,所述hook函数还用于执行:

将FEngineLoop::Tick函数调用时间及对应的帧耗时输出至指定路径的文本文件。

5.根据权利要求1所述的检测游戏卡顿帧的方法,其特征在于,所述查找帧耗时超过游戏设定帧速率对应的单帧时长的帧,包括:

读取游戏配置获取当前设定的帧速率;

根据设定的帧速率计算对应的单帧时长;

将记录的所有帧的帧耗时依次与所述单帧时长对比,记录帧耗时超过所述单帧时长的帧信息。

6.一种检测游戏卡顿帧的装置,其特征在于,包括:

监控模块,用于使用hook函数监控FEngineLoop::Tick函数的调用,计算每帧调用FEngineLoop::Tick函数的时长得到对应的帧耗时,并记录所有帧的帧耗时;

对比定位模块,用于查找帧耗时超过游戏设定帧速率对应的单帧时长的帧。

7.根据权利要求6所述的检测游戏卡顿帧的装置,其特征在于,还包括:

游戏读取模块,通过测试工具启动运行游戏并从游戏服务器获取游戏线程;

钩子模块,通过测试工具在游戏线程中安装自定义hook函数。

8.根据权利要求7所述的检测游戏卡顿帧的装置,其特征在于,所述钩子模块包括:

第一计时模块,用于在FEngineLoop::Tick函数被调用前,记录当前系统时间为帧开始时间;

调用模块,用于调用FEngineLoop::Tick函数刷新帧;

第二计时模块,用于在FEngineLoop::Tick函数调用返回时再次记录当前系统时间为帧结束时间;

帧耗时计算模块,用于计算帧结束时间与帧开始时间的差值,得到该帧的帧耗时。

9.根据权利要求7所述的检测游戏卡顿帧的装置,其特征在于,所述钩子模块还包括:

记录模块,用于将FEngineLoop::Tick函数调用时间及对应的帧耗时输出至指定路径的文本文件。

10.根据权利要求6所述的检测游戏卡顿帧的装置,其特征在于,所述对比定位模块包括:

帧速率获取模块,用于读取游戏配置获取当前设定的帧速率;

单帧时长计算模块,用于根据设定的帧速率计算对应的单帧时长;

卡帧查找模块,将记录的所有帧的帧耗时依次与所述单帧时长对比,记录帧耗时超过所述单帧时长的帧信息。

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