Closed DerekH-233 closed 2 years ago
可以详细描述您使用的Release版本吗?
可以详细描述您使用的Release版本吗?
你好,目前使用的是v1.3.0 刚刚重新下载了一次,依旧存在卡顿问题 下面是录制的视频 https://user-images.githubusercontent.com/61926895/198512323-0ab57d8c-b53e-46d9-b1ce-f32617d13523.mp4
请问运行.jar
格式的Release仍会发生此问题吗?
录制视频
请问运行
.jar
格式的Release仍会发生此问题吗?
是的,下列是两种格式的运行视频,出现的卡顿问题一致
经过排查,发现以下关于窗口句柄(HWnd)获取
的代码在部分设备上运行耗时长达200ms:
https://github.com/isHarryh/Ark-Pets/blob/80bc1acbea97bc60e504f624436d87b293fc2e19/core/src/com/isharryh/arkpets/utils/HWndCtrl.java#L70-L92
其被调用的位置如下,每一帧都需要调用该函数,故造成帧率大幅度下降:
https://github.com/isHarryh/Ark-Pets/blob/80bc1acbea97bc60e504f624436d87b293fc2e19/core/src/com/isharryh/arkpets/ArkPets.java#L244
经过 @Aloento 的指导,发现其运行迟缓的原因是该函数内的回调函数使用了大量的new
:
https://github.com/isHarryh/Ark-Pets/blob/80bc1acbea97bc60e504f624436d87b293fc2e19/core/src/com/isharryh/arkpets/utils/HWndCtrl.java#L76-L82
由此导致的内存抖动可能是卡顿的首要原因。
后续将会通过预筛选来限制new
的调用次数,并限制该函数的每秒调用频率,以缓解或解决此问题。
启动器中模型流畅,点击启动后 模型十分卡顿(可能只有5帧)/无响应 任务管理器中频繁显示 evb8B92.tmp(32位) 无响应
已下载安装JRE,电脑驱动最新