نمایه یک Microbenchmark

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

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

برای اطلاعات بیشتر درباره گزینه‌ها، به انتخاب پیکربندی ضبط مراجعه کنید. MethodTracing معادل "Trace Java Methods" و StackSampling معادل "Sample Java Methods" است که در آن سند تعریف شده است.

شیار

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 در فهرست راهنما کپی می‌شود. برای بررسی نتایج نمایه سازی در نمایه CPU در Android Studio، File > Open را انتخاب کنید. برای کسب اطلاعات بیشتر در مورد خواندن و درک ردپاها، به Inspect Traces مراجعه کنید.

روش ردیابی

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

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

StackSampling

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

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

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

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

  • androidx.benchmark.profiling.sampleFrequency

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

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

هیچ کدام

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

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