คุณควรบันทึกเมื่อเกมแสดงการโหลดด้วยเหตุผล 2 ประการดังนี้
- เพื่อหลีกเลี่ยงไม่ให้ข้อมูลเวลาที่ใช้ในการแสดงผลเฟรมเกิดมลพิษระหว่างการโหลด
- เพื่อวิเคราะห์เวลาในการโหลดเพื่อดูว่าเวลาและตำแหน่งที่ใช้เวลาโหลดนานกว่า ที่ยอมรับได้
เหตุการณ์การโหลดอาจมีข้อมูลเมตาที่เชื่อมโยง ได้แก่
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;
ช่องใดก็ตามที่ไม่เกี่ยวข้องกับความต้องการของคุณจะมีค่าเป็น 0
เหตุการณ์การโหลดอาจมีคำอธิบายประกอบที่เชื่อมโยงด้วย ซึ่งมีคำนิยามใน
ในลักษณะเดียวกับคำอธิบายประกอบเวลาที่ใช้ในการแสดงผลเฟรม โดยใช้ช่องอย่างน้อย 1 ช่องใน Annotation
ในไฟล์ dev_tuningfork.proto
ฟังก์ชันนี้จะเริ่มบันทึกเหตุการณ์เวลาที่ใช้ในการโหลดที่เชื่อมโยงกับ
ข้อมูลเมตาและคำอธิบายประกอบที่กำหนด และใส่ลงใน handle
เพื่อใช้ใน
TuningFork_stopRecordingLoadingTime()
TuningFork_ErrorCode TuningFork_stopRecordingLoadingTime(
TuningFork_LoadingEventHandle handle);
ฟังก์ชันนี้จะหยุดการบันทึกกิจกรรมที่เริ่มขึ้นก่อนหน้านี้โดย
TuningFork_startRecordingLoadingTime()
กิจกรรมได้รับการอัปโหลดในเวลา
การล้างเซสชัน
เราขอแนะนำอย่างยิ่งให้ใช้ฟังก์ชันเริ่มและหยุดโดยตรง ที่อธิบายก่อนหน้านี้ แต่ถ้าทำไม่ได้ คุณสามารถเรียกใช้ฟังก์ชันนี้ เพื่อบันทึกระยะเวลา รวมถึงข้อมูลเมตาและคำอธิบายประกอบที่เกี่ยวข้อง
กำลังโหลดฟังก์ชันกลุ่ม
ในเกม คุณอาจบันทึกเหตุการณ์การโหลดหลายรายการในระยะเวลาการโหลด 1 ครั้ง ที่ผู้ใช้เห็น ตัวอย่างเช่น (แต่ไม่จำกัดเพียง) การโหลดไฟล์ การขยายการบีบอัด และการคอมไพล์ตัวปรับแสงเงา
คุณต้องแจ้ง Tuning Fork ว่าการโหลดเหตุการณ์ เป็นส่วนหนึ่งของกลุ่มดังกล่าวเพื่อให้สามารถให้ข้อมูลเชิงลึกที่ดีขึ้นได้ วงเล็บ การโหลดเหตุการณ์ที่มีฟังก์ชันเริ่มต้นและหยุดต่อไปนี้เพื่อดำเนินการดังกล่าว
ฟังก์ชันนี้จะเริ่มกลุ่มการโหลดที่เชื่อมโยงกับ
ข้อมูลเมตาและคำอธิบายประกอบที่กำหนด และใส่ลงใน handle
เพื่อใช้ใน
TuningFork_stopLoadingGroup()
ข้อมูลเมตาและคำอธิบายประกอบ
ปัจจุบันแบ็กเอนด์ของ Play ไม่ได้ใช้งานอยู่และตั้งค่าเป็น nullptr
ได้ รายการต่อๆ ไปทั้งหมด
การโหลดจะติดแท็กด้วยรหัสกลุ่มสินค้าที่ไม่ซ้ำ
TuningFork_ErrorCode TuningFork_stopLoadingGroup(
TuningFork_LoadingEventHandle handle);
ฟังก์ชันนี้จะหยุดกลุ่มการโหลดที่ก่อนหน้านี้เริ่มขึ้นโดย
TuningFork_startLoadingGroup()
การโหลดครั้งต่อๆ ไปจะไม่มี
รหัสกลุ่มจนกว่าจะมีการเรียกใช้ TuningFork_startLoadingGroup()
อีกครั้ง
รูปที่ 1 ตัวอย่างกลุ่มการโหลด