我想测量我的 Android 增强现实应用的 FPS。我正在尝试遵循使用 dumpsys framestats 的文档。
这是我的程序:
- 通过 USB 将设备 (Galaxy Tab S5e) 连接到计算机 (MacBook Pro)
- 启动程序
- 打开终端并输入
adb shell dumpsys gfxinfo <PACKAGE_NAME> framestats
我得到结果。文档说我应该得到一些 CSV 数据(我这样做了)。这里是:
Flags,IntendedVsync,Vsync,OldestInputEvent,NewestInputEvent,HandleInputStart,AnimationStart,PerformTraversalsStart,DrawStart,SyncQueued,SyncStart,IssueDrawCommandsStart,SwapBuffers,FrameCompleted,DequeueBufferDuration,QueueBufferDuration,
1,270900288236110,270901404902732,9223372036854775807,0,270901406732543,270901407052751,270901407062751,270901480932022,270901488003689,270901488511137,270901489180876,270901502575459,270901504554157,1520000,1026000,
1,270901416955482,270901500288812,9223372036854775807,0,270901507061241,270901507131709,270901507732074,270901524054574,270901524125251,270901524430720,270901524804834,270901531068480,270901534144522,3249000,1831000,
首先,为什么只有两行,如果:
“此输出的每一行代表应用程序生成的一帧”
如果我等待然后重新运行命令,我再次只得到 2 行。有时值已更新,但有时它们没有...
文档说我可以计算帧时间:
(FRAME_COMPLETED - INTENDED_VSYNC)
所以,我想我可以在说 1 分钟后运行 ADB 命令,输出大量帧时间然后绘制它,但是如果我一次只输出 2 帧......并且如果重新运行 ADB 命令没有更新数据...如何测量帧时间?我在这里想念什么?