无法解析 android 帧统计数据中的时间戳

问题描述 投票:0回答:1

有人对framestats有任何了解吗https://developer.android.com/tools/dumpsys#ui 问题 - 运行 framestats 命令时,我收到一些奇怪的时间戳 例子 标志、预期Vsync、Vsync、OldestInputEvent、NewestInputEvent、HandleInputStart、AnimationStart、PerformTraversalsStart、DrawStart、SyncQueued、SyncStart、IssueDrawCommandsStart、SwapBuffers、FrameCompleted、DequeueBufferDuration、QueueBufferDuration、GpuCompleted、 1,146696088396343,146696571729686,9223372036854775807,0,146696581891073,146696581894611,146696581897880,146697072749611,1 46697073366726,146697078783572,146697079121803,146697080224149,146697082513226,0,524962,0, 1,146698922377875,146698922377875,9223372036854775807,0,146698923674840,146698923677994,146698923976609,146698949996725,1 46698950291379,146698950697879,146698950903148,146698957816571,146698961607994,3572884,579693,0, 1,146698938951344,146698938951344,9223372036854775807,0,146698953406302,146698953410763,146698954719917,146698973898109,1 46698974007302,146698974468955,146698975846379,146698985501379,146698989020840,5225577,1202039,0,

如果你举个例子,那么 146696088396343ns 指向 1970 年 1 月 2 日。

我期待是否转换 146696088396343ns 时间戳。我应该得到一些有效的日期

android date timestamp adb dumpsys
1个回答
0
投票

这些时间戳并不意味着直接转换为日期。它们是单调系统时钟数据。正如文档中所述,建议使用此类数据来计算经过的时间。

例如,如果您有用于渲染帧的配置文件数据:

Flags,IntendedVsync,Vsync,OldestInputEvent,NewestInputEvent,HandleInputStart,AnimationStart,PerformTraversalsStart,DrawStart,SyncQueued,SyncStart,IssueDrawCommandsStart,SwapBuffers,FrameCompleted,DequeueBufferDuration,QueueBufferDuration,GpuCompleted,
0,4947428577884,4947428577884,4947410644000,4947417134500,4947430768177,4947432698385,4947434430635,4947434503677,4947436475094,4947436682677,4947436721510,4947437213719,4947440847094,74292,192541,4947440671302,

您可以计算 GpuCompleted 和 IntendedVsync 时间戳之间的差异 (4947440671302 - 4947428577884) 并将结果 (12093418) 转换为毫秒 (12.09ms)。正如您所看到的,12 毫秒低于 16 毫秒阈值,因此渲染帧所花费的时间被认为是可以的,这并不是滞后的迹象。

尽管有点旧,这个附加文档应该为您提供有关配置文件数据中其他字段含义的更详细解释。

快乐的分析!

© www.soinside.com 2019 - 2024. All rights reserved.