نمایه یک Microbenchmark

به طور پیش فرض، Microbenchmarks اطلاعاتی در مورد زمان بندی و تخصیص کدهای اجرا شده به شما می دهد. اگر می‌خواهید بررسی کنید که چرا کد اندازه‌گیری‌شده به کندی اجرا می‌شود، ردیابی روش را که به‌طور پیش‌فرض در نسخه‌های سیستم‌عامل پشتیبانی‌شده ثبت شده است، بررسی کنید یا سایر تنظیمات پروفایل را انتخاب کنید.

برای انتخاب پیکربندی نمایه‌گر، آرگومان اجرای ابزار دقیق androidx.benchmark.profiling.mode با یکی از آرگومان‌های MethodTracing (پیش‌فرض)، StackSampling یا None اضافه کنید، همانطور که در قطعه زیر نشان داده شده است.

برای اطلاعات بیشتر در مورد گزینه‌ها، به روش‌های ضبط جاوا/کاتلین مراجعه کنید. MethodTracing معادل ردیابی است و StackSampling معادل نمونه برداری است که در آن سند تعریف شده است.

شیار

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling'
    }
}

کاتلین

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling"
    }
}

هنگامی که یک معیار را نمایه می‌کنید، یک فایل .trace خروجی به همراه نتایج JSON در فهرست راهنما کپی می‌شود. برای بررسی نتایج نمایه سازی در Android Studio، پیوند Method Trace یا Stack Sampling Trace را در نتایج microbenchmark انتخاب کنید.

روش ردیابی

ردیابی روش زمانی مفید است که می‌خواهید کد خود را بهینه کنید زیرا می‌تواند به شما کمک کند روش‌هایی را شناسایی کنید که نسبت به سایرین زمان بیشتری برای اجرا دارند. سپس می توانید روی بهینه سازی روش هایی تمرکز کنید که بیشترین تأثیر را بر عملکرد دارند.

نمایه سازی به ترتیب پس از اندازه گیری کد انجام می شود، بنابراین آزمایش شما هم زمان بندی دقیق و هم نتایج پروفایل را خروجی می دهد.

ردیابی روش به طور پیش فرض روشن است.

توجه: در برخی از نسخه های سیستم عامل Android و ART، ردیابی روش به طور پیش فرض خاموش است. در این مواقع اندروید استودیو یک اخطار خروجی می دهد.

StackSampling

ردیابی نمونه همچنین می تواند به شناسایی روش های گران قیمت بدون سربار عملکرد ردیابی روش کمک کند. با این حال، اگر برنامه شما پس از ضبط پشته تماس، روشی را وارد کند و روش قبل از ضبط بعدی خارج شود، در این صورت فراخوانی روش ثبت نمی‌شود. برای ردیابی صحیح روش ها با چرخه عمر کوتاه، به جای ردیابی نمونه از ردیابی روش استفاده کنید.

با نمونه برداری پشته، نمونه های معیار پس از اتمام گرم کردن، پشته ها را فراخوانی می کنند. با استفاده از آرگومان های ابزار دقیق می توانید رفتار نمونه برداری مانند تعداد دفعات نمونه و مدت زمان نمونه برداری را کنترل کنید.

در Android 10 (API 29) و بالاتر، نمونه‌برداری پشته از Simpleperf برای نمونه‌گیری از پشته‌های تماس برنامه، از جمله کد ++C استفاده می‌کند. در Android 9 (API 28) و پایین‌تر، از Debug.startMethodTracingSampling برای گرفتن نمونه‌های پشته استفاده می‌کند.

شما می توانید این حالت پروفایل را با افزودن آرگومان های ابزار دقیق دیگر پیکربندی کنید:

  • androidx.benchmark.profiling.sampleFrequency

    • تعداد نمونه های پشته ای برای گرفتن در هر ثانیه.
    • نوع آرگومان: عدد صحیح
    • پیش فرض 1000 نمونه در ثانیه است.
  • androidx.benchmark.profiling.sampleDurationSeconds

    • مدت زمان اجرای معیار.
    • نوع آرگومان: عدد صحیح
    • پیش فرض تا 5 ثانیه است.
  • androidx.benchmark.profiling.skipWhenDurationRisksAnr

    • زمانی که احتمال ایجاد ANR از ردیابی روش وجود دارد، صرفنظر می کند. شما باید این را برای اجرای CI فعال نگه دارید، زیرا ANR ها می توانند در طول اجرای طولانی CI مشکلاتی ایجاد کنند.
    • نوع آرگومان: بولی
    • پیش فرض ها به true

هیچ کدام

این آرگومان یک فایل نمایه سازی را نمی گیرد. اطلاعات مربوط به زمان بندی و تخصیص هنوز اندازه گیری می شود.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}