HAR के लिए परफ़ॉर्मेंस ट्रेसिंग

ATrace, बाहरी क्रेट tracing_android_trace का इस्तेमाल करके, HAR के लिए परफ़ॉर्मेंस ट्रेसिंग करता है.

एचएआर के लिए ट्रेसिंग की सुविधा चालू करना

रेफ़रंस harry-app के लिए परफ़ॉर्मेंस ट्रेसिंग की सुविधा चालू करने के लिए, कार्गो की सुविधा harry-app-platform-specific/tracing-android चालू करें.

# crates/reference/harry-app/Cargo.toml

harry-sdv = ["harry-app-platform-specific/tracing-android", ...]

HAR में कस्टम ट्रेस जोड़ना

  • कस्टम span जोड़ने के लिए, tracing क्रेट से span का इस्तेमाल करें.
    let custom_trace = tracing::info_span!("custom_trace_span").entered()
    // code here will be traced
    drop(custom_trace)

पहली इमेज. Perfetto के यूज़र इंटरफ़ेस (यूआई) की इमेज, जिसमें harry प्रोसेस (HAR) से मिला सैंपल ट्रेस दिखाया गया है

DriverUI के लिए परफ़ॉर्मेंस ट्रेसिंग

DriverUI, Android सिस्टम ट्रेसिंग का इस्तेमाल करता है. इसके लिए, किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती.

DriverUI में कस्टम ट्रेस जोड़ना

डेवलपर गाइड का इस्तेमाल करके, Kotlin कोड में कस्टम इवेंट जोड़े जा सकते हैं.

ट्रेस इकट्ठा करना

हमारा सुझाव है कि AAOS पर ट्रेस इकट्ठा करने के लिए, Torq का इस्तेमाल करें.

Torq का इस्तेमाल करना

Torq, AAOS और SDV पर परफ़ॉर्मेंस ट्रेस इकट्ठा करने के लिए एक सीएलआई टूल है.

  1. Torq रिपॉज़िटरी को क्लोन करें.

  2. बनाने और फिर चलाने के लिए, रिपॉज़िटरी में दिए गए निर्देशों का पालन करें:

export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000

दोनों वर्चुअल मशीन (वीएम) के लिए, एक ही परफ़ॉर्मेंस ट्रेस इकट्ठा करना

Display Safety की सुविधा दो वीएम पर काम करती है. इसलिए, दोनों वीएम से एक ही समय पर ट्रेस इकट्ठा करने से समस्याओं का पता लगाने में मदद मिलती है.

  • Torq, Perfetto के traced_relay की मदद से यूनीफ़ाइड ट्रेसिंग की सुविधा देता है.
  • यूनिफ़ाइड ट्रेस कैप्चर करने के लिए, सबसे पहले दोनों वीएम के लिए सीआईडी ​​का पता लगाएं:
# Get the cid for SDV Media VM. For example: 3
adb -s <sdv_media_vm_serial> shell getprop ro.sdv.vsock_local_cid

# Get the cid for SDV IVI VM. For example: 4
adb -s <sdv_ivi_vm_serial> shell getprop ro.sdv.vsock_local_cid

इस उदाहरण में, SDV-Media VM (cid=3) का इस्तेमाल रिले के तौर पर करें.

# Configure your VMs for unified tracing
torq vm configure --primary <sdv_ivi_vm_serial> --primary-cid 4 --secondary <sdv_media_vm_serial>
# Collect a 7 second trace from the SDV IVI VM, it will now collect a unified trace
torq --serial <sdv_ivi_vm_serial> -d 7000

उदाहरण के लिए:

दूसरी इमेज. Perfetto यूज़र इंटरफ़ेस (यूआई) में, दोनों वीएम की दोनों प्रोसेस के साथ यूनिफ़ाइड ट्रेस का सैंपल दिखाया गया है: harry (HAR) और com.android.car.driverui (DriverUI).

बूट ट्रेस इकट्ठा करना

बूट परफ़ॉर्मेंस का विश्लेषण करने के लिए, बूट ट्रेस इकट्ठा करने के लिए, आपको कुछ फ़्लैग चालू करने होंगे.

  1. बूट ट्रेस के लिए, SDV के हिसाब से बदलाव न होने वाला फ़्लैग सेट करें.

    export ANDROID_SERIAL=<your_device_serial>
    adb root
    adb shell setprop persist.debug.sdv.boottrace 1
    adb shell setprop persist.debug.perfetto.boottrace 1
    
  2. कर्नल cmdline पैरामीटर androidboot.fastboot.boottrace=enabled सेट करें.

# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled

record_android_trace का इस्तेमाल करें

यह तरीका अपनाएं:

# Set your adb device serial
export ANDROID_SERIAL=<your_device_serial>
# Run record_android_trace from the Android repo
cd /<your_repo_path>
build/envsetup.sh

$ANDROID_BUILD_TOP/external/perfetto/tools/record_android_trace --config $ANDROID_BUILD_TOP/system/software_defined_vehicle/core_services/samples/tracing/config/trace_cfg.pbtx