با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
به طور پیش فرض، 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 برای گرفتن نمونههای پشته استفاده میکند.
شما می توانید این حالت پروفایل را با افزودن آرگومان های ابزار دقیق دیگر پیکربندی کنید:
زمانی که احتمال ایجاد ANR از ردیابی روش وجود دارد، صرفنظر می کند. شما باید این را برای اجرای CI فعال نگه دارید، زیرا ANR ها می توانند در طول اجرای طولانی CI مشکلاتی ایجاد کنند.
نوع آرگومان: بولی
پیش فرض ها به true
هیچ کدام
این آرگومان یک فایل نمایه سازی را نمی گیرد. اطلاعات مربوط به زمان بندی و تخصیص هنوز اندازه گیری می شود.
{% کلمه به کلمه %} {% آخر کلمه %}
برای شما توصیه می شود
توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی."],[],[],null,["By default, Microbenchmarks give you information about the timing and\nallocations of the executed code. If you want to investigate why the measured\ncode is running slowly, inspect the method trace---captured by default on\n[supported OS versions](#method-tracing-default-support)---or select other\nprofiling configurations.\n\nTo select the profiler configuration, add the instrumentation runner argument\n`androidx.benchmark.profiling.mode` with one of\n[`MethodTracing`](#method-tracing) (default),\n[`StackSampling`](#stack-sampling), or [`None`](#none) argument, as shown in the\nfollowing snippet.\n\nFor more information about the options, see [Record Java/Kotlin methods](/studio/profile/record-java-kotlin-methods).\n`MethodTracing` is the equivalent of tracing, and `StackSampling` is the\nequivalent of sampling as defined in that document. \n\nGroovy \n\n```groovy\nandroid {\n defaultConfig {\n // must be one of: 'None', 'StackSampling', or 'MethodTracing'\n testInstrumentationRunnerArguments[\"androidx.benchmark.profiling.mode\"]= 'StackSampling'\n }\n}\n```\n\nKotlin \n\n```kotlin\nandroid {\n defaultConfig {\n // must be one of: 'None', 'StackSampling', or 'MethodTracing'\n testInstrumentationRunnerArguments[\"androidx.benchmark.profiling.mode\"] = \"StackSampling\"\n }\n}\n```\n\nWhen you profile a benchmark, an output `.trace` file is copied to the host in\nthe directory [alongside JSON results](/topic/performance/benchmarking/microbenchmark-write#benchmark-results). To inspect profiling results in\nAndroid Studio, select the **Method Trace** or **Stack Sampling Trace** link\nin the microbenchmark results.\n| **Note:** The Microbenchmark library automatically captures system tracing, but with custom tracing sections disabled---it ignores calls to `Trace.beginSection and endSection`---to prevent interference from tracing overhead.\n\nMethodTracing\n\nMethod tracing is useful when you are trying to optimize your code because it\ncan help you identify the methods that take longer to run than others. You can\nthen focus on optimizing the methods that have the most impact on performance.\n\nProfiling occurs in sequence after code measurement, so your test outputs both\naccurate timing and profiling results.\n\nMethod tracing is on by default. \n**Note:** On some Android OS and ART versions, method tracing is off by default. In these cases, Android Studio outputs a warning.\n\nStackSampling\n\nSample tracing can also help identify expensive methods without the\nperformance overhead of method tracing. However, if your app enters a method\nafter a call stack has been captured and the method exits before the next\ncapture, then the method call is not logged. To properly track methods with\nshort life cycles, use method tracing instead of sample tracing.\n\nWith stack sampling, the benchmark samples call stacks after the warmup is\ncomplete. You can control sampling behavior such as the\n[sample frequency](#profiling-samplefrequency)\nand [duration of sampling](#profiling-sampleduration) using instrumentation\narguments.\n\nOn Android 10 (API 29) and higher, stack sampling uses [Simpleperf](/ndk/guides/simpleperf) to sample\napp callstacks, including C++ code. On Android 9 (API 28) and lower, it uses\n[`Debug.startMethodTracingSampling`](/reference/kotlin/android/os/Debug#startMethodTracingSampling(kotlin.String,%20kotlin.Int,%20kotlin.Int)) to capture stack samples.\n\nYou can configure this profiling mode by adding another instrumentation\narguments:\n\n- `androidx.benchmark.profiling.sampleFrequency`\n\n - Number of stack samples to capture per second.\n - Argument type: integer\n - Defaults to 1000 samples per second.\n- `androidx.benchmark.profiling.sampleDurationSeconds`\n\n - Duration of benchmark to run.\n - Argument type: integer\n - Defaults to 5 seconds.\n- `androidx.benchmark.profiling.skipWhenDurationRisksAnr`\n\n - Skips method tracing when it's likely to cause an ANR. You should keep this enabled for CI runs, since ANRs can cause problems during long CI runs.\n - Argument type: boolean\n - Defaults to `true`\n\nNone\n\nThis argument doesn't capture a profiling file. Information about timing and\nallocations are still measured.\n\nRecommended for you\n\n- Note: link text is displayed when JavaScript is off\n- [Microbenchmark Instrumentation Arguments](/topic/performance/benchmarking/microbenchmark-instrumentation-args)\n- [Run benchmarks in Continuous Integration](/topic/performance/benchmarking/benchmarking-in-ci)"]]