HAR-এর জন্য পারফরম্যান্স ট্রেসিং

ATrace, tracing_android_trace নামক এক্সটার্নাল ক্রেট ব্যবহার করে HAR-এর জন্য পারফরম্যান্স ট্রেসিং সম্পাদন করে।

HAR-এর জন্য ট্রেসিং সক্ষম করুন

রেফারেন্স harry-app জন্য পারফরম্যান্স ট্রেসিং চালু করতে, harry-app-platform-specific/tracing-android লিঙ্কে থাকা কার্গো ফিচারটি সক্রিয় করুন।

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

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

HAR-এ কাস্টম ট্রেস যোগ করুন

    let custom_trace = tracing::info_span!("custom_trace_span").entered()
    // code here will be traced
    drop(custom_trace)

চিত্র ১. পারফেটটো ইউআই, যেখানে harry প্রসেস (HAR) থেকে একটি নমুনা ট্রেস দেখানো হচ্ছে।

DriverUI-এর জন্য পারফরম্যান্স ট্রেসিং

DriverUI অ্যান্ড্রয়েড সিস্টেম ট্রেসিং ব্যবহার করে; কোনো অতিরিক্ত কনফিগারেশনের প্রয়োজন নেই।

DriverUI-তে কাস্টম ট্রেস যোগ করুন

আপনি ডেভেলপার গাইড ব্যবহার করে কোটলিন কোডে কাস্টম ইভেন্ট যোগ করতে পারেন।

একটি চিহ্ন সংগ্রহ করুন

AAOS-এ ট্রেস সংগ্রহের জন্য আমরা Torq ব্যবহারের পরামর্শ দিই।

টর্ক ব্যবহার করুন

Torq হলো AAOS এবং SDV-তে পারফরম্যান্স ট্রেস সংগ্রহ করার একটি CLI টুল।

  1. Torq রিপোজিটরিটি ক্লোন করুন।

  2. বিল্ড করার জন্য রিপোজিটরিতে দেওয়া নির্দেশাবলী অনুসরণ করুন এবং তারপর রান করুন:

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

উভয় ভিএম জুড়ে একটি সমন্বিত পারফরম্যান্স ট্রেস সংগ্রহ করুন

যেহেতু ডিসপ্লে সেফটি দুটি ভিএম জুড়ে চলে, তাই একই সময়ে উভয় ভিএম থেকে ট্রেস সংগ্রহ করলে সমস্যা শনাক্ত করতে সুবিধা হয়।

  • 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

উদাহরণস্বরূপ:

চিত্র ২. পারফেটটো ইউআই, যেখানে উভয় ভিএম-এর প্রসেস— 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. কার্নেল কমান্ডলাইন প্যারামিটার 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