android添加时间,添加加载时间记录函数

记录游戏执行加载的时间非常重要,原因有两个:

避免在加载时污染帧时间数据。

分析加载时间,看看加载时间何时何地超过可接受的范围。

加载事件可以具有关联的元数据:

typedef struct TuningFork_LoadingTimeMetadata {

enum LoadingState {

UNKNOWN_STATE = 0,

// The first time the game is run

FIRST_RUN = 1,

// App is not backgrounded

COLD_START = 2,

// App is backgrounded

WARM_START = 3,

// App is backgrounded, least work needed

HOT_START = 4,

// Asset loading between levels

INTER_LEVEL = 5

} state;

enum LoadingSource {

UNKNOWN_SOURCE = 0,

// Uncompressing data.

MEMORY = 1,

// Reading assets from APK bundle.

APK = 2,

// Reading assets from device storage.

DEVICE_STORAGE = 3,

// Reading assets from external storage, e.g. SD card.

EXTERNAL_STORAGE = 4,

// Loading assets from the network.

NETWORK = 5,

// Shader compilation.

SHADER_COMPILATION = 6,

// Time spent between process starting and onCreate.

PRE_ACTIVITY = 7,

// Total time spent between process starting and first render frame.

FIRST_TOUCH_TO_FIRST_FRAME = 8

} source;

int32_t compression_level; // 0 = no compression, 100 = max compression

enum NetworkConnectivity {

UNKNOWN = 0,

WIFI = 1,

CELLULAR_NETWORK = 2

} network_connectivity;

uint64_t network_transfer_speed_bps; // bandwidth in bits per second

uint64_t network_latency_ns; // latency in nanoseconds

} TuningFork_LoadingTimeMetadata;

任何与您的需求无关的字段都可以为零。

加载事件还可以具有关联的注释。它的定义方式与帧时间注释相同,那就是使用 dev_tuningfork.proto 文件的 Annotation 消息中的一个或多个字段。

此函数开始记录与给定的元数据和注释关联的加载时间事件,并填充要在 TuningFork_stopRecordingLoadingTime() 函数中使用的 handle。

此函数停止记录之前由 TuningFork_startRecordingLoadingTime() 开始的事件。该事件会在下次会话刷新时上传。

我们强烈建议直接使用前面所述的开始和停止函数。不过,如果您无法执行此操作,则可以调用此函数来记录持续时间及其关联的元数据和注释。

加载组函数

在您的游戏中,您可以为用户看到的一个加载期间记录多个加载事件。一些示例包括(但不限于)文件加载、解压缩和着色器编译。

务必告知 Tuning Fork,加载事件是此类组的一部分,以便它可以提供更好的数据分析。为此,请将加载事件与以下开始和停止函数括在一起。

注意:一次只能有一个加载组处于活动状态。

此函数开始与给定的元数据和注释关联的加载组,并填充要在 TuningFork_stopLoadingGroup() 函数中使用的 handle。Play 后端当前不使用元数据和注释,您可以将其设置为 nullptr。所有后续加载事件都将由唯一的组 ID 来标记。

此函数停止之前由 TuningFork_startLoadingGroup() 开始的加载组。后续加载事件将没有组 ID,直到再次调用 TuningFork_startLoadingGroup()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值