বেঞ্চমার্ক
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | প্রার্থী মুক্তি | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
2 অক্টোবর, 2024 | 1.3.2 | - | - | 1.4.0-আলফা02 |
নির্ভরতা ঘোষণা করা
বেঞ্চমার্কের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
ম্যাক্রোবেঞ্চমার্ক
আপনার প্রকল্পে ম্যাক্রোবেঞ্চমার্ক ব্যবহার করতে, আপনার macrobenchmark মডিউলের জন্য আপনার build.gradle
ফাইলে নিম্নলিখিত নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { androidTestImplementation "androidx.benchmark:benchmark-macro-junit4:1.3.2" }
কোটলিন
dependencies { androidTestImplementation("androidx.benchmark:benchmark-macro-junit4:1.3.2") }
মাইক্রোবেঞ্চমার্ক
আপনার প্রোজেক্টে মাইক্রোবেঞ্চমার্ক ব্যবহার করতে, আপনার মাইক্রোবেঞ্চমার্ক মডিউলের জন্য আপনার build.gradle
ফাইলে নিম্নলিখিত নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { androidTestImplementation "androidx.benchmark:benchmark-junit4:1.3.2" } android { ... defaultConfig { ... testInstrumentationRunner "androidx.benchmark.junit4.AndroidBenchmarkRunner" } }
কোটলিন
dependencies { androidTestImplementation("androidx.benchmark:benchmark-junit4:1.3.2") } android { ... defaultConfig { ... testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner" } }
মাইক্রোবেঞ্চমার্ক লাইব্রেরি আপনার মাইক্রোবেঞ্চমার্ক মডিউলের সাথে ব্যবহার করার জন্য একটি গ্রেডল প্লাগইনও প্রদান করে। এই প্লাগইনটি মডিউলের জন্য বিল্ড কনফিগারেশন ডিফল্ট সেট করে, হোস্টে বেঞ্চমার্ক আউটপুট কপি সেট আপ করে এবং ./gradlew lockClocks
টাস্ক প্রদান করে।
প্লাগইন ব্যবহার করতে, আপনার শীর্ষ-স্তরের build.gradle
ফাইলে `plugins` ব্লকে নিম্নলিখিত লাইনটি অন্তর্ভুক্ত করুন:
গ্রোভি
plugins { id 'androidx.benchmark' version '1.3.2' apply false }
কোটলিন
plugins { id("androidx.benchmark") version "1.3.2" apply false }
তারপর প্লাগইনটি আপনার বেঞ্চমার্ক মডিউলের build.gradle
ফাইলে প্রয়োগ করুন
গ্রোভি
plugins { id 'androidx.benchmark' }
কোটলিন
plugins { id("androidx.benchmark") }
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ 1.4
সংস্করণ 1.4.0-alpha02
2 অক্টোবর, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha02-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- Gradle টাস্কগুলিকে
lockClocks
এবংunlockClocks
বেঞ্চমার্ক প্রকল্পগুলিতে স্থানান্তরিত করা হয়েছে, শীর্ষ স্তরে উপলব্ধ না হয়ে। এই পরিবর্তনটি প্রয়োজনীয় ছিল কারণ দুর্ভাগ্যবশত প্রকল্পের বিচ্ছিন্নতা না ভেঙে শীর্ষ স্তরের ক্রিয়া হিসাবে নিবন্ধন করার কোন উপায় নেই। ( I02b8f , b/363325823 )
বাগ ফিক্স
-
BaselineProfileRule
এখন মাল্টি-প্রসেস অ্যাপ্লিকেশানগুলির জন্য প্রোফাইলগুলি সংগ্রহ করে ব্লকের শেষে প্রতিটি চলমান প্রক্রিয়াকে ডাম্প করার জন্য সিগন্যাল করে। যদি একটি প্রোফাইল ভিত্তিক সংকলন সফলভাবে সম্প্রচার করার জন্য একটি প্রক্রিয়া খুঁজে না পায়, তবে সংকলনটি ব্যর্থ হবে, কারণ এটির মধ্যে প্রোফাইল ডেটা থাকা অপ্রত্যাশিত। অতিরিক্তভাবে, ডাম্প অপেক্ষার সময়কাল নিয়ন্ত্রণ করার জন্য একটি উপকরণ যুক্তি যোগ করা হয়েছে:androidx.benchmark.saveProfileWaitMillis
( I0f519 , b/366231469 ) - বেঞ্চমার্ক
1.3.2
থেকে : ফিক্সড ফায়ারবেস টেস্ট ল্যাব (FTL) বেসলাইন প্রোফাইল গ্রেডল প্লাগইন থেকে বেসলাইন প্রোফাইল বা ম্যাক্রোবেঞ্চমার্ক ফলাফল ফাইলগুলি টেনে আনতে অক্ষম। ( I2f678 , b/285187547 )
FTL ব্যবহার করতে প্লাগইন ব্লকের বেসলাইন প্রোফাইল মডিউলে প্লাগইন প্রয়োগ করুন, এর সাথে:
plugins {
...
id("com.google.firebase.testlab")
}
এবং তারপর এর সাথে ফায়ারবেস টেস্ট ল্যাব কনফিগার করুন:
firebaseTestLab {
// Credentials for FTL service
serviceAccountCredentials.set(file("credentials.json"))
// Creates one or more managed devices to run the tests on.
managedDevices {
"ftlDeviceShiba34" {
device = "shiba"
apiLevel = 34
}
}
// Ensures the baseline profile is pulled from the device.
// Note that this will be automated as well later with aosp/3272935.
testOptions {
results {
directoriesToPull.addAll("/storage/emulated/0/Android/media/${android.namespace}")
}
}
}
এছাড়াও তৈরি করা FTL ডিভাইসটিকে বেসলাইন প্রোফাইল এক্সটেনশনে যুক্ত করতে হবে:
baselineProfile {
managedDevices += "ftlDeviceShiba34"
useConnectedDevices = false
}
সংস্করণ 1.4.0-alpha01
সেপ্টেম্বর 18, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য - অ্যাপ স্টার্টআপ অন্তর্দৃষ্টি
- অ্যাপ স্টার্টআপ অন্তর্দৃষ্টির প্রাথমিক সংস্করণ ম্যাক্রোবেঞ্চমার্কে সক্ষম করা যেতে পারে। ( 09fae38 )
একটি স্টার্টআপ বেঞ্চমার্ক সক্ষম করতে:
@Test
fun startup {
macrobenchmarkRule.measureRepeated(
…
packageName = "com.example.my.application.id"
metrics = listOf(StartupTimingMetric()),
iterations = 5,
startupMode = StartupMode.COLD,
compilationMode = CompilationMode.None(),
experimentalConfig = ExperimentalConfig(startupInsightsConfig = StartupInsightsConfig(isEnabled = true))
) {
scope.startActivityAndWait(...)
}
}
তারপরে আপনার স্টার্টআপ বেঞ্চমার্ক চালানো সাধারণ সমস্যাগুলি সন্ধান করতে ট্রেস বিশ্লেষণ করবে এবং বেঞ্চমার্ক ট্যাবে স্টুডিও পরীক্ষার আউটপুটে মেট্রিক্সের পরে সেগুলি মুদ্রণ করবে, যেমন:
StartupBenchmark_startup[startup=COLD,compilationMode=None]
├── Metrics
│ ├── timeToFullDisplayMs min 1,147.2, median 1,208.8, max 1,307.4
│ └── timeToInitialDisplayMs min 1,147.2, median 1,208.8, max 1,307.4
├── App Startup Insights
│ ├── App in debuggable mode (expected: false)
│ │ └── seen in iterations: 0(true) 1(true) 2(true) 3(true) 4(true) 5(true) 6(true) 7(true) 8(true) 9(true)
│ ├── Potential CPU contention with another process (expected: < 100000000ns)
│ │ └── seen in iterations: 4(105022546ns)
│ └── Main Thread - Binder transactions blocked (expected: false)
│ └── seen in iterations: 7(true)
└── Traces
└── Iteration 0 1 2 3 4 5 6 7 8 9
ডকুমেন্টেশনের উন্নতি এবং অনুসরণ করার জন্য এক্সটেনসিবিলিটি সহ এই বৈশিষ্ট্যটি এখনও একটি কাজ চলছে, তবে প্রতিক্রিয়া স্বাগত জানাই।
নতুন বৈশিষ্ট্য
- সমস্ত বেসলাইন প্রোফাইল সতর্কতা দমন করতে gradle প্রপার্টি
androidx.baselineprofile.suppressWarnings
যোগ করা হয়েছে। ( 314153a ) - মাইক্রোবেঞ্চ মেট্রিক্স এখন কাউন্টার হিসাবে পারফেটো ট্রেসে প্রদর্শিত হয়। ( 3214854 )
- জিট অক্ষম করার জন্য পরীক্ষামূলক স্ক্রিপ্ট যোগ করুন (রুট/ রানটাইম রিস্টার্ট প্রয়োজন), এবং ডিভাইস পারফ/টেস্ট স্টেট রিসেট করুন। এগুলি বর্তমানে গ্রেডল টাস্ক হিসাবে প্রকাশিত হয় না। ( 7c3732b )
- এমুলেটরে চলাকালীন পরীক্ষাগুলি এড়িয়ে যাওয়ার জন্য বেঞ্চমার্ক যুক্তি যোগ করা হয়েছে৷
automaticGenerationDuring
বিল্ড সক্ষম হলে, বেঞ্চমার্কগুলি বেসলাইন প্রোফাইল জেনারেশনও ট্রিগার করবে। এমুলেটর ব্যবহার করা হলে এটি ব্যর্থ হবে। নতুন আর্গুমেন্টskipBenchmarksOnEmulator
দিয়ে আমরা পরিবর্তে পরীক্ষাটি এড়িয়ে যেতে পারি। ( 0c2ddcd ) - API 23+ ( 2550048 ) এ চালানোর জন্য পারফ ইভেন্ট সক্ষম লজিক পরিবর্তন করুন
এপিআই পরিবর্তন
-
MacrobenchmarkRule.measureRepeated()
এ বিদ্যমান পরীক্ষামূলকPerfettoConfig
আর্গুমেন্ট নতুনExperimentalConfig
অবজেক্টে সরানো হয়েছে।
বাগ ফিক্স
-
lockClocks.sh
পুনরায় চেষ্টার সংখ্যা বাড়ান ( 99e9dac ) - বিদ্যমান থাকলে
nonMinified
এবং বেঞ্চমার্ক বিল্ড প্রকার তৈরি করবেন না। একটি বাগের কারণে, এমনকি যদিnonMinified
এবং বেঞ্চমার্ক বিল্ড প্রকারগুলি বিদ্যমান থাকে, সেগুলি পুনরায় তৈরি করা হবে। ( e75f0a5 ) -
TraceSectionMetric
ফলাফল থেকে নন-টার্মিনেটিং স্লাইস উপেক্ষা করুন। ( a927d20 ) -
sdk_
উপসর্গ বিবেচনা করার জন্য উন্নত এমুলেটর চেক করুন। ( 1587de8 ) -
FrameTimingGfxInfoMetric
এ সাফ করা অ-চলমান প্যাকেজগুলিকে বিবেচনা করুন৷ ( 35cc79c ) -
androidx.benchmark.cpuEventCounter
অ-নির্দেশনা ইভেন্টগুলির জন্য দুর্নীতিগ্রস্ত মান তৈরি করে তা ঠিক করুন। ( 06edd59 ) - মেট্রিক অগ্রাধিকার ক্রমকে সম্মান করতে
resumeTiming/runWithTimingDisabled
ঠিক করুন এবং উচ্চ অগ্রাধিকার মেট্রিক ফলাফলে নিম্ন অগ্রাধিকার মেট্রিক পজ/রিজুমের প্রভাব উল্লেখযোগ্যভাবে হ্রাস করুন। উদাহরণ স্বরূপ,cpuEventCounter.enable
ইন্সট্রুমেন্টেশন আর্গুমেন্টের মাধ্যমে cpu perf কাউন্টার ব্যবহার করলে, বিরতি/পুনরায় শুরু হলে টাইমএন আর উল্লেখযোগ্যভাবে হ্রাস পায় না। ( 5de0968 )
সংস্করণ 1.3
সংস্করণ 1.3.2
2 অক্টোবর, 2024
androidx.benchmark:benchmark-*:1.3.2
প্রকাশিত হয়েছে। সংস্করণ 1.3.2-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- ফিক্সড ফায়ারবেস টেস্ট ল্যাব (FTL) বেসলাইন প্রোফাইল গ্রেডল প্লাগইন থেকে বেসলাইন প্রোফাইল বা ম্যাক্রোবেঞ্চমার্ক ফলাফল ফাইলগুলি টেনে আনতে অক্ষম। ( I2f678 , b/285187547 )
FTL ব্যবহার করতে প্লাগইন ব্লকের বেসলাইন প্রোফাইল মডিউলে প্লাগইন প্রয়োগ করুন, এর সাথে:
plugins {
...
id("com.google.firebase.testlab")
}
এবং তারপর এর সাথে ফায়ারবেস টেস্ট ল্যাব কনফিগার করুন:
firebaseTestLab {
// Credentials for FTL service
serviceAccountCredentials.set(file("credentials.json"))
// Creates one or more managed devices to run the tests on.
managedDevices {
"ftlDeviceShiba34" {
device = "shiba"
apiLevel = 34
}
}
// Ensures the baseline profile is pulled from the device.
// Note that this will be automated as well later with aosp/3272935.
testOptions {
results {
directoriesToPull.addAll("/storage/emulated/0/Android/media/${android.namespace}")
}
}
}
এছাড়াও তৈরি করা FTL ডিভাইসটিকে বেসলাইন প্রোফাইল এক্সটেনশনে যুক্ত করতে হবে:
baselineProfile {
managedDevices += "ftlDeviceShiba34"
useConnectedDevices = false
}
সংস্করণ 1.3.1
সেপ্টেম্বর 18, 2024
androidx.benchmark:benchmark-*:1.3.1
প্রকাশিত হয়েছে। সংস্করণ 1.3.1-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- সমস্ত বেসলাইন প্রোফাইল সতর্কতা দমন করার জন্য গ্রেডল প্রপার্টি
androidx.baselineprofile.suppressWarnings
যোগ করা হয়েছে ( I7c36e , b/349646646 ) - স্থির বেসলাইন প্রোফাইল গ্র্যাডল প্লাগইন আগে থেকে বিদ্যমান
nonMinified…
এবংbenchmark…
যদি র্যাপার তৈরি না করে অ্যাপ দ্বারা তৈরি করা হয়। ( IA8934 , b/361370179 ) - স্থির
java.lang.AssertionError: ERRORS (not suppressed): EMULATOR
যখন এমুলেটরগুলিতেautomaticGenerationDuringBuild
সক্রিয় থাকে। পরীক্ষা এড়িয়ে যাওয়ার পরিবর্তে নতুন যুক্তি ব্যবহার করা হয়। ( if3f51 , b/355515798 ) - মাইক্রোবেঞ্চমার্ক মিনিফিকেশন - বেঞ্চমার্ক লাইব্রেরি প্রোগার্ডে
org.junit.runner.notification.RunListener
এর সাবক্লাস রাখুন ( Ic8ed5 , b/354264743 ) - অ-টার্মিনেটিং স্লাইস উপেক্ষা করতে
TraceSectionMetric
ঠিক করুন। পূর্বে এগুলিকে -1 সময়কাল হিসাবে বিবেচনা করা হত, যেমন যোগফলের সময় বা সর্বনিম্ন সময়কাল খুঁজে বের করার সময়। ( if74b7 ) -
FrameTimingGfxInfoMetric
এ একটি সমস্যা সমাধান করা হয়েছে যেখানে প্রক্রিয়াটি আগে থেকে চলমান না থাকলে মেট্রিক শুরু করা ক্র্যাশ হয়ে যাবে। ( I6e412 )
সংস্করণ 1.3.0
আগস্ট 21, 2024
androidx.benchmark:benchmark-*:1.3.0
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-এ এই কমিট রয়েছে।
1.2.0 থেকে মাইক্রোবেঞ্চমার্কের পরিবর্তন
- বেশিরভাগ ডিভাইসে চলমান অবস্থায় মাইক্রোবেঞ্চমার্কে মেথড ট্রেসিং ডিফল্টভাবে চালু থাকে
- মেথড ট্রেসিং পরিমাপের পরে একটি পৃথক ফেজ হিসাবে চলে - এটি সঠিক পরিমাপ এবং পদ্ধতি ট্রেস উভয়ই একটি একক বেঞ্চমার্ক রান থেকে আউটপুট হতে সক্ষম করে
- কিছু অ্যান্ড্রয়েড ওএস এবং এআরটি সংস্করণে পদ্ধতির ট্রেসিং পরবর্তী পরিমাপের পর্যায়গুলিকে প্রভাবিত করবে - এই সংস্করণগুলিতে, পদ্ধতির ট্রেসিং ডিফল্টরূপে বন্ধ থাকে এবং স্টুডিও আউটপুটে একটি সতর্কতা প্রিন্ট করা হয়
- প্রধান থ্রেড বেঞ্চমার্ক এবং ANR
- অনেক সেকেন্ড চলার সময় ANR এড়াতে UI থ্রেড বেঞ্চমার্কের জন্য (যেমন যেগুলি রচনা/ভিউ UI-এর সাথে ইন্টারঅ্যাক্ট করে) এর জন্য
measureRepeatedOnMainThread
যোগ করা হয়েছে। - ANR এড়ানোর সময়সীমা অতিক্রম করার প্রত্যাশিত হলে পদ্ধতির চিহ্নগুলি বাদ দেওয়া হয়। এই আচরণটি নিষ্ক্রিয় করতে
androidx.benchmark.profiling.skipWhenDurationRisksAnr
কে মিথ্যাতে সেট করুন (CI রানের জন্য সুপারিশ করা হয় না, কারণ ANR দীর্ঘ CI রানে সমস্যা সৃষ্টি করতে পারে)।
- অনেক সেকেন্ড চলার সময় ANR এড়াতে UI থ্রেড বেঞ্চমার্কের জন্য (যেমন যেগুলি রচনা/ভিউ UI-এর সাথে ইন্টারঅ্যাক্ট করে) এর জন্য
- মিনিফিকেশন
- মাইক্রোবেঞ্চমার্কিং উন্নত করার জন্য এম্বেড করা প্রোগার্ড নিয়মগুলি মিনিফিকেশন সক্ষম করা আছে
- একটি লাইব্রেরি মডিউলে Minification/R8 এর জন্য AGP 8.3 প্রয়োজন এবং আপনার
build.gradle
এandroid.buildTypes.release.androidTest.enableMinification
এর মাধ্যমে সক্ষম করা যেতে পারে - পরীক্ষামূলক
BlackHole.consume()
API ডেড কোড নির্মূল রোধ করতে যোগ করা হয়েছে ( If6812 , b/286091643 )
- মেট্রিক্স
- পরীক্ষামূলক cpu ইভেন্ট কাউন্টার বৈশিষ্ট্য (
perf_event_open
থেকে মেট্রিক্স, যার জন্য প্ল্যাটফর্মের বেশিরভাগ সংস্করণে রুট প্রয়োজন),InstrumentationArgument
androidx.benchmark.cpuEventCounter.enable
এর মাধ্যমে অ্যাক্সেস (true
সেট করা যেতে পারে), এবংandroidx.benchmark.cpuEventCounter.events
সেট করা যেতে পারে যেমন (Instructions,CpuCycles
)। এটি কিছু ইউজারডিবাগ এমুলেটরগুলিতে সমর্থিত হওয়া উচিত, তবে সমস্ত উপলব্ধ এমুলেটরগুলিতে সমর্থন পরীক্ষা করা হয়নি
- পরীক্ষামূলক cpu ইভেন্ট কাউন্টার বৈশিষ্ট্য (
1.2.0 থেকে MACROবেঞ্চমার্ক পরিবর্তন হয়েছে
- ম্যাক্রোবেঞ্চমার্কের জন্য মেথড ট্রেসিং ওভারহল।
- এখন মেথড ট্রেসগুলি
measureBlock
সময়কালের জন্য স্কোপ করা হয়েছে, এবং প্রক্রিয়াটি একাধিকবার শুরু হলে একাধিক সেশন ক্যাপচার করতে পারে। - পূর্বে, মেথড ট্রেসিং শুধুমাত্র
StartupMode.COLD
বেঞ্চমার্কের জন্য কাজ করবে, এবংmeasureBlocks
জন্য কিছুই ক্যাপচার করবে যা টার্গেট প্রসেস রিস্টার্ট করেনি - স্থির পদ্ধতির ট্রেসগুলি ম্যাক্রোবেঞ্চমার্কে ফ্লাশ করে, যাতে পদ্ধতির ট্রেসগুলি সম্পূর্ণরূপে ক্যাপচার করা এবং বৈধ হওয়া উচিত, এমনকি ধীর ডিভাইসেও। ( I6349a , b/329904950 )
- এখন মেথড ট্রেসগুলি
- পৃথক
warmUp
পুনরাবৃত্তির সময় সঠিকভাবে ART প্রোফাইল ডাম্প করুন যখন প্রক্রিয়াটি মারা যায় তাইCompilationMode.Partial(warmup=N)
পরিমাপ আরও সঠিক। ( I17923 ) - ড্রপ Shader সম্প্রচার ব্যর্থতা বার্তা
- শেডার সম্প্রচার ব্যর্থতার বার্তা ড্রপ করতে ডিবাগিং পরামর্শ যোগ করা হয়েছে
-
ProfileInstaller
1.3 ছাড়া অ্যাপস বেঞ্চমার্ক করার সময় শেডার ড্রপিং আচরণ ওভাররাইড করার জন্য দুটি ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করুন:-
androidx.benchmark.dropShaders.enable=true/false
: সমস্ত শেডার ড্রপিং (StartupMode.Cold
লঞ্চ সহ) এড়িয়ে যেতে ব্যবহার করা যেতে পারে, বিশেষ করে বেঞ্চমার্ক করার সময় অ্যাপগুলি যেগুলি এখনও প্রোফাইলইনস্টলার 1.3 ব্যবহার করে না -
androidx.benchmark.dropShaders.throwOnFailure=true/false
: শেডার্স ড্রপ করার চেষ্টা করার সময় ব্যর্থতা সহ্য করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ যখন প্রোফাইলইনস্টলার 1.3 ( I4f573 ) ছাড়া অ্যাপের বেঞ্চমার্কিং
-
- পরীক্ষামূলক
MacrobenchmarkRule#measureRepeated
variant যোগ করা হয়েছে যা সম্পূর্ণ কাস্টমাইজড Perfetto ট্রেস রেকর্ডিংয়ের জন্য একটি কাস্টমPerfettoConfig
নেয়। মনে রাখবেন যে ভুলভাবে কনফিগার করা কনফিগারের কারণে বিল্ট ইন মেট্রিক ক্লাস ব্যর্থ হতে পারে। ( Idfd3d , b/309841164 , b/304038384 ) - হস্তক্ষেপ কমাতে ম্যাক্রোবেঞ্চমার্ক চালানোর আগে ব্যাকগ্রাউন্ড ডেক্সপট কাজগুলি বাতিল করুন। ( I989ed )
- ম্যাক্রোবেঞ্চমার্ক এখন একটি ART প্রোফাইল ফ্লাশ করার লক্ষ্য অ্যাপ্লিকেশনটির জন্য 1 সেকেন্ডের জন্য অপেক্ষা করে (আগে এটি 500 ms এর জন্য অপেক্ষা করত)। ( I85a50 , b/316082056 )
- TraceSectionMetric ওভারহল
- দ্রষ্টব্য : নীচের
TraceSectionMetric
পরিবর্তনগুলি CI ব্যবহারের আউটপুটগুলিকে প্রভাবিত করতে পারে এবং বিচ্ছিন্নতা তৈরি করতে পারে, বা পার্সিং ভেঙে দিতে পারে - যোগফল এখন ডিফল্ট, কারণ এই মেট্রিকের বেশির ভাগ ব্যবহার বারবার ইভেন্টের জন্য হয় এবং প্রথমে এই ক্ষেত্রে ডেটা বাতিল করা হবে
- আরও উপলভ্য মোড সহ আরও কাস্টমাইজযোগ্য হতে পরিবর্তিত হয়েছে
- মোডের নামগুলি এখন মেট্রিক আউটপুট নামে এম্বেড করা হয়েছে (স্টুডিও এবং JSON-এ)
- এখন
Trace.{begin|end}AsyncSection
।
- দ্রষ্টব্য : নীচের
- মেট্রিক্স
- পাওয়ার -
PowerMetric.deviceSupportsHighPrecisionTracking
,PowerMetric.deviceBatteryHasMinimumCharge()
এবংPowerMetric.deviceSupportsPowerEnergy()
যোগ করা হয়েছে -
Metric.getResult
নাম পরিবর্তন করেgetMeasurements
সাথে মেলে রিটার্ন টাইপ - সমস্ত স্টার্টআপ সনাক্তকরণ ব্যর্থতায় log.w/ ব্যতিক্রম লেবেল যোগ করা হয়েছে। এটি বর্তমান আচরণ পরিবর্তন করে না (তাই কিছু ত্রুটি নিক্ষেপ করে, এবং অন্যরা নীরবে স্টার্টআপ সনাক্ত করতে ব্যর্থ হয়), এটি আরও বোধগম্য করে তোলে। সাধারণত যেগুলি
Log.w()
এবং স্টার্টআপ মেট্রিক্স রিপোর্ট করতে ব্যর্থ হয় সেগুলি হল যেখানে নন-ফ্রেম ইভেন্টগুলি অনুপস্থিত, ব্যতিক্রমগুলি ছুঁড়ে দেওয়া হয় যখন স্টার্টআপ শনাক্ত করা হয় ফ্রেম টাইমিং তথ্য (UI/RT স্লাইস থেকে) ছাড়া৷ ( Id240f , b/329145809 ) -
FrameTimingMetric
এframeCount
পরিমাপ যোগ করা হয়েছে এমন পরিস্থিতির আবিষ্কারে সাহায্য করার জন্য যেখানে পরিমাপ পরিবর্তিত হয় কারণ উত্পাদিত ফ্রেমের সংখ্যা পরিবর্তিত হয় (নতুন অ্যানিমেশন যোগ করা হয়েছে, অবৈধতা সংক্রান্ত সমস্যাগুলি সংশোধন করা হয়েছে)। ( I1e5aa ) - স্পষ্ট করা হয়েছে যে ডক্সে উপলব্ধ হলে ট্র্যাকিংয়ের জন্য
frameOverrunMs
পছন্দের মেট্রিক এবং কেন। ( I18749 , b/329478323 ) - সমস্যার সমাধান করে যেখানে ট্রেসের শুরুতে এবং শেষের শেষ না হওয়া ফ্রেমগুলিকে একসাথে যুক্ত করা যেতে পারে, যা একটি একক অত্যন্ত দীর্ঘ ফ্রেম হিসাবে ভুলভাবে রিপোর্ট করবে। ( I39353 , b/322232828 )
-
FrameTimingMetric
ত্রুটি উন্নত করুন যখন ফ্রেম তৈরি করা হয় না, এবং সমস্যা নির্ণয়ে সহায়তা করার জন্য মেট্রিক পার্সিং ব্যর্থ হলে সর্বদা ট্রেস লিঙ্ক আউটপুট করুন। ( I956b9 ) -
FrameTimingMetric
এ স্থির ক্র্যাশ ফ্রেম আইডি পার্স করতে ব্যর্থ হয়েছে, বিশেষ করে নির্দিষ্ট কিছু OEM ডিভাইসে। ( IA24bc , b/303823815 , b/306235276 ) -
FrameMetrics
চেকের কঠোরতা শিথিল করা হয়েছে এবং ত্রুটির বার্তাগুলিতে আরও বিশদ যোগ করা হয়েছে। ( ইয়াদেদে )
- পাওয়ার -
বেসলাইন প্রোফাইল ক্যাপচার / গ্রেডল প্লাগইন 1.2.0 থেকে পরিবর্তিত হয়েছে
- AGP-এর সর্বাধিক প্রস্তাবিত সংস্করণ 9.0.0-alpha01-এ বৃদ্ধি করা হয়েছে।
- নিশ্চিত করুন
mergeArtProfile
এবংmergeStartupProfile
কাজগুলি সর্বদা বেসলাইন প্রোফাইল তৈরির জন্য অপেক্ষা করে৷ ( I623d6 , b/343086054 ) - একটি বেসলাইন প্রোফাইল সফলভাবে তৈরি করা হলে যা পরিবর্তিত হয়েছে তার একটি সারাংশ আউটপুট করবে ( I824c8 , b/269484510 )
- সতর্কতা নিষ্ক্রিয় করতে DSL যোগ করা হয়েছে ( Ic4deb , b/331237001 )
-
automaticGenerationDuringBuild
বন্ধ থাকলে বেঞ্চমার্কগুলি জেনারেট করা বেসলাইন প্রোফাইলগুলি ব্যবহার করে তা নিশ্চিত করুন ( Ic144f , b/333024280 ) - একটি
nonMinified
বা বেঞ্চমার্ক বিল্ড টাইপ কাস্টমাইজ করার সময় বেসলাইন প্রোফাইল জেনারেশন এবং বেঞ্চমার্কিং সক্ষম করতেBaselineProfile
গ্রেডল প্লাগইন সম্পত্তি ওভাররাইডগুলি ঠিক করুন। ( Ib8f05 , b/324837887 ) - AGP 8.3.0-alpha15 এর আগে AAR-এ লাইব্রেরি বেসলাইন প্রোফাইল অন্তর্ভুক্ত করার জন্য ঠিক করুন। ( I1d2af , b/313992099 )
- জেনারেশন টাস্কের শেষে বেসলাইন এবং স্টার্টআপ প্রোফাইল আউটপুট ইউআরএল ফিক্সড। ( I802e5 , b/313976958 )
1.2.0 থেকে অন্যান্য উল্লেখযোগ্য পরিবর্তন
- ট্রেস ক্যাপচার
- EXITCODE 2 ত্রুটি হ্রাস করা হয়েছে যখন একটি ত্রুটি থেকে লগ করা সতর্কতা পর্যন্ত perfetto শুরু করার সময়
- বেঞ্চমার্কে ডিফল্টরূপে AIDL ট্রেসিং সক্ষম করুন (এপিআই 28 প্রয়োজন) ( Ia0af2 , b/341852305 )
- বেঞ্চমার্কে ডিফল্টরূপে পোর্টার ট্যাগ ট্রেসিং সক্ষম করুন। এটি ক্যাপচার করে, উদাহরণস্বরূপ, wakelock ট্রেসপয়েন্ট। ( ICfe44 , b/286551983 )
- ধীরগতির ডিভাইসগুলিতে ট্রেসিং শুরু করার সময় ক্র্যাশ এড়াতে বর্ধিত ট্রেস ক্যাপচার শুরুর সময়সীমা ( I98841 , b/329145808 )
- JSON, textproto এবং প্রোটো বাইনারি (আনডিকোডেড) ভেরিয়েন্ট সহ পাবলিক API
PerfettoTraceProcessor.Session.queryMetrics
API যোগ করা হয়েছে। এগুলি আপনাকেTraceProcessor
( I54d7f , b/304038382 )-এ অন্তর্নির্মিত মেট্রিকগুলি জিজ্ঞাসা করার অনুমতি দেয় - ট্রেসের শুরুতে ডেটা হারিয়ে যাওয়ার ঝুঁকি কমাতে পারফেটো ট্রেস রেকর্ডে ব্লক করা শুরু সক্ষম করুন। শুধুমাত্র API 33+ এ সমর্থিত। ( Ie6e41 , b/310760059 )
- JSON আউটপুট
- JSON আউটপুটে বেঞ্চমার্ক প্রসঙ্গে অতিরিক্ত তথ্য যোগ করা হয়েছে:
-
context.artMainlineVersion
- আর্ট মেইনলাইন মডিউলের পূর্ণসংখ্যা সংস্করণ (যদি ডিভাইসে থাকে,-1
অন্যথায়) -
context.build.id
- android.os.Build.ID এর সমান -
context.build.version.codename
- android.os.Build.VERSION.CODENAME এর সমান -
context.build.version.abbreviatedCodename
- প্রাক-রিলিজ কোডনামের প্রথম অক্ষরের সাথে মিলে যায় (রিলিজ বিল্ড সহ )
-
- প্রোফাইলিং ট্রেস (যেমন পারফেটো, মেথড ট্রেস) ( I05ddd , b/332604449 ) এর চারপাশে সহজ টুলিংয়ের জন্য JSON আউটপুটে
profilerOutput
তালিকা যোগ করা হয়েছে - বেঞ্চমার্ক মডিউলগুলিতে যখন Android টেস্ট অর্কেস্ট্রেটর ব্যবহার করা হয় তখন একটি সতর্কতা যোগ করা হয়েছে, কারণ এটি প্রতি-মডিউল আউটপুট JSON ফাইলগুলিকে বারবার ওভাররাইট করবে৷ ( IA1af6 , b/286899049 )
- ফাইলের নাম 200 অক্ষরের বেশি হলে ফেলুন যাতে ফাইল লেখার সময় বা পোস্ট-প্রসেসিং করার সময় অস্পষ্ট ক্র্যাশ এড়াতে হয়। ( I4a5ab )
- JSON আউটপুটে বেঞ্চমার্ক প্রসঙ্গে অতিরিক্ত তথ্য যোগ করা হয়েছে:
সংস্করণ 1.3.0-rc01
7 আগস্ট, 2024
androidx.benchmark:benchmark-*:1.3.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
androidx.benchmark.cpuEventCounter
অ-নির্দেশনামূলক ইভেন্টগুলির জন্য দুর্নীতিগ্রস্ত মান তৈরি করে ( I7386a , b/286306579 ) ঠিক করুন - মেট্রিক অগ্রাধিকার ক্রমকে সম্মান করতে
resumeTiming
/runWithTimingDisabled
ঠিক করুন এবং উচ্চ অগ্রাধিকার মেট্রিক ফলাফলে নিম্ন অগ্রাধিকার মেট্রিক পজ/রিজুমের প্রভাব উল্লেখযোগ্যভাবে কমিয়ে দিন। উদাহরণ স্বরূপ,cpuEventCounter.enable
ইন্সট্রুমেন্টেশন আর্গুমেন্টের মাধ্যমে cpu perf কাউন্টার ব্যবহার করলে, বিরতি/পুনরায় শুরু হলে টাইমএন আর উল্লেখযোগ্যভাবে হ্রাস পায় না। ( I39c2e , b/286306579 , b/307445225 ) - স্ট্যাক স্যাম্পলিং এর সম্ভাবনা হ্রাস করা হয়েছে যার ফলে মেইন থ্রেডের হার্ড টাইমআউট স্ট্যাক স্যাম্পলিং কনভার্সনকে প্রধান থ্রেডের বাইরে সরিয়ে দিয়ে
measureRepeatedOnMainThread
আঘাত করা হতে পারে। ( I487a8 , b/342237318 ) - নতুন প্ল্যাটফর্ম API-এ অ্যাক্সেসের ম্যানুয়াল রূপরেখা সরানো হয়েছে যেহেতু AGP 7.3 বা তার পরে (যেমন R8 সংস্করণ 3.3) এবং AGP 8.1 বা তার পরবর্তী (যেমন D8 সংস্করণ 8.1) ব্যবহার করার সময় R8 ব্যবহার করার সময় এটি স্বয়ংক্রিয়ভাবে API মডেলিংয়ের মাধ্যমে ঘটে। যে সকল ক্লায়েন্ট AGP ব্যবহার করছেন না তাদের D8 সংস্করণ 8.1 বা তার পরবর্তী সংস্করণে আপডেট করার পরামর্শ দেওয়া হচ্ছে। আরো বিস্তারিত জানার জন্য এই নিবন্ধটি দেখুন. ( I9496c , b/345472586 )
- instr arg হিসাবে প্যাকেজের নাম পাঠাতে agp সংস্করণ চেক যোগ করা হয়েছে। AGP 8.4.0 এর পূর্বে লক্ষ্য অ্যাপ প্যাকেজের নাম ইন্সট্রুমেন্টেশন আর্গুমেন্টের মাধ্যমে ইন্সট্রুমেন্টেশন অ্যাপে পাঠানো যাবে না। ( 0c72a3f )
সংস্করণ 1.3.0-beta02
10 জুলাই, 2024
androidx.benchmark:benchmark-*:1.3.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta02-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সতর্কতা লগ করার জন্য Perfetto শুরু করার সময় EXITCODE
2
সুন্দরভাবে পরিচালনা করুন, কিন্তু এগিয়ে যান।
সংস্করণ 1.3.0-beta01
জুন 12, 2024
androidx.benchmark:benchmark-*:1.3.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- সামঞ্জস্যের জন্য
MethodTracing.affectsMeasurementOnThisDevice
AFFECTS_MEASUREMENT_ON_THIS_DEVICE
এ পুনঃনামকরণ করা হয়েছে। ( আই১বিডিএফএ ) - মাইক্রোবেঞ্চমার্কে ডেড কোড নির্মূল রোধ করতে পরীক্ষামূলক
BlackHole.consume()
api যোগ করা হয়েছে। ( if6812 , b/286091643 ) - মাইক্রোবেঞ্চমার্ক এখন সঠিকভাবে নিক্ষেপ করবে যাতে মেথড ট্রেসিং পরিমাপের সাথে হস্তক্ষেপ না হয়। এটি কিছু ডিভাইসে ঘটে যখন মেথড ট্রেসিং জোরপূর্বক চালু করা হয় (ইনস্ট্রুমেন্টেশন আর্গস বা
MicrobenchmarkConfig
মাধ্যমে), এবং যদি মেথড ট্রেস করার পরে একটি পরিমাপ করার চেষ্টা করা হয়। প্রভাবিত ডিভাইসগুলি API 26-30 বা নির্দিষ্ট ART মেইনলাইন মডিউল সংস্করণ চালাচ্ছে যা এই হস্তক্ষেপ দ্বারা প্রভাবিত হয়েছে এবংProfilerConfig.MethodTracing.affectsMeasurementOnThisDevice
এর মাধ্যমে রানটাইমে সনাক্ত করা যেতে পারে। ( Iafb92 , b/303660864 )
বাগ ফিক্স
- বাম্পড ম্যাক্স এজিপি সংস্করণ 9.0.0-আলফা01-এ সুপারিশ করা হয়েছে। ( I5bbb0 )
- বেঞ্চমার্ক প্রসঙ্গে সংকলন মোড যোগ করা হয়েছে ( If5612 , b/325512900 )
- ডিফল্টরূপে AIDL ট্রেসিং সক্ষম করুন (এপিআই 28 প্রয়োজন) ( Ia0af2 , b/341852305 )
- JSON আউটপুটে বেঞ্চমার্ক প্রসঙ্গে অতিরিক্ত তথ্য যোগ করা হয়েছে:
-
context.artMainlineVersion
- আর্ট মেইনলাইন মডিউলের পূর্ণসংখ্যা সংস্করণ (যদি ডিভাইসে থাকে, -1 অন্যথায়) -
context.build.id
-android.os.Build.ID
সমান -
context.build.version.codename
-android.os.Build.VERSION.CODENAME
এর সমান -
context.build.version.abbreviatedCodename
- প্রাক-রিলিজ কোডনামের প্রথম অক্ষরের সাথে মিলে যায় (এমনকি রিলিজ বিল্ডেও )
-
-
androidx.benchmark.profiling.sampleDurationSeconds
( Ib1d53 ) কে সম্মান করার জন্যStackSampling
সংশোধন করে -
api()
হতে macro->সাধারণ নির্ভরতা পরিবর্তন করুন, যাতে এটি ব্যবহার করা সহজ যেমনPerfettoTrace
এবংPerfettoConfig
। ( Icdae3 , b/341851833 ) - নিশ্চিত করুন
mergeArtProfile
এবংmergeStartupProfile
কাজগুলি সর্বদা বেসলাইন প্রোফাইল তৈরির জন্য অপেক্ষা করে৷ ( I623d6 , b/343086054 ) - বৈকল্পিক সক্ষম করা উচিত কিনা তা সিদ্ধান্ত নেওয়ার সময় বৈকল্পিক সক্ষম অবস্থা বিবেচনা করুন৷ ( I5d19e , b/343249144 )
- পারফেটো ট্রেস প্রসেসরের জন্য বর্ধিত ডিফল্ট শুরুর সময়সীমা। ( I87e8c , b/329145808 )
সংস্করণ 1.3.0-alpha05
14 মে, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha05-এ এই কমিট রয়েছে।
বাগ ফিক্স
- ম্যাক্রোবেঞ্চ মেট্রিক সমস্ত পুনরাবৃত্তির জন্য শূন্য মান প্রদান করলে স্পষ্ট ব্যতিক্রম ছুঁড়ে দিন ( Iab58f , b/314931695 )
- শ্রোতার নিয়ম এবং অন্যান্য পর্যবেক্ষণ করা সতর্কতা/ত্রুটির সমর্থন সহ মাইক্রোবেঞ্চ প্রোগার্ড নিয়মে অতিরিক্ত সমাধানের নিয়মগুলি যোগ করা হয়েছে। ( I14d8f , b/329126308 , b/339085669 )
- মেথড ট্রেসিং একটি ম্যাক্রোবেঞ্চমার্কের সময় একটি পৃথক ফেজ হিসাবে চলে এবং এটি আর পরিমাপকে প্রভাবিত করে না। ( if9a50 , b/285912360 , b/336588271 )
- শেডার সম্প্রচার ব্যর্থতার বার্তা ড্রপ করতে অতিরিক্ত ডিবাগিং পরামর্শ যোগ করা হয়েছে। ( I5efa6 , b/325502725 )
সংস্করণ 1.3.0-alpha04
1 মে, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha04-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- পরীক্ষামূলক
MacrobenchmarkRule#measureRepeated
variant যোগ করা হয়েছে যা সম্পূর্ণ কাস্টমাইজড Perfetto ট্রেস রেকর্ডিংয়ের জন্য একটি কাস্টমPerfettoConfig
নেয়। মনে রাখবেন যে ভুলভাবে কনফিগার করা কনফিগারের কারণে বিল্ট ইন মেট্রিক ক্লাস ব্যর্থ হতে পারে। ( Idfd3d , b/309841164 , b/304038384 ) - স্বচ্ছতার জন্য
PowerMetric.deviceSupportsPowerEnergy
এPowerMetric.deviceSupportsHighPrecisionTracking
এর নাম পরিবর্তন করুন ( I5b82f ) - ডিভাইস পাওয়ার পরিমাপের ক্ষমতার উপর ভিত্তি করে বেঞ্চমার্ক পরিবর্তন বা এড়িয়ে যাওয়া সক্ষম করতে
PowerMetric.deviceBatteryHasMinimumCharge()
এবংPowerMetric.deviceSupportsPowerEnergy()
যোগ করা হয়েছে। ( I6a591 , b/322121218 )
বাগ ফিক্স
- পূর্ববর্তী বেসলাইন প্রোফাইলের সাথে তুলনা যোগ করা হয়েছে ( I824c8 , b/269484510 )
- সতর্কতা নিষ্ক্রিয় করতে DSL যোগ করা হয়েছে ( Ic4deb , b/331237001 )
- বেঞ্চমার্ক ভেরিয়েন্ট অক্ষম করা হলে তথ্য লগে ব্যতিক্রম পরিবর্তন করা হয়েছে ( I8a517 , b/332772491 )
- একটি ম্যাক্রোবেঞ্চমার্কের জন্য পদ্ধতির ট্রেস ক্যাপচার করা সহজ করে তুলুন প্রকৃত
measureBlock()
এর সময়কাল পর্যন্ত। পূর্বে, এটি টার্গেট প্রসেস লঞ্চে শুরু হয়েছিল এবং শুধুমাত্র কোল্ড স্টার্ট সমর্থিত ছিল ( Iee85a , b/300651094 ) - যখন পারফেটো ট্রেস প্রসেসর শুরু হতে ধীর হয় তখন ক্র্যাশ হওয়া এড়িয়ে চলুন ( I98841 , b/329145808 )
সংস্করণ 1.3.0-alpha03
এপ্রিল 17, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha03-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- JSON, textproto এবং প্রোটো বাইনারি (আনডিকোডেড) ভেরিয়েন্টের সাথে পাবলিক API
PerfettoTraceProcessor.Session.queryMetrics
API যোগ করে। এগুলি আপনাকে ট্রেসপ্রসেসর ( I54d7f , b/304038382 ) -এ অন্তর্নির্মিত মেট্রিকগুলি জিজ্ঞাসা করার অনুমতি দেয় - প্রোফাইলিং ট্রেসগুলির চারপাশে সহজ টুলিংয়ের জন্য JSON আউটপুটে
profilerOutput
যোগ করা হয়েছে (যেমন perfetto, পদ্ধতি ট্রেস)। ( I05ddd , b/332604449 ) - বেঞ্চমার্ক পারফেটো কনফিগারেশনে পাওয়ার ট্যাগ যোগ করা হয়েছে। এটি ক্যাপচার করে, উদাহরণস্বরূপ, wakelock ট্রেসপয়েন্ট। ( ICfe44 , b/286551983 )
- যোগ করা ইনস্ট আর্গুমেন্ট
androidx.benchmark.profiling.skipWhenDurationRisksAnr
, প্রত্যাশিত সময়কাল একটি ANR হতে পারে যখন পদ্ধতি ট্রেস এড়ানোর জন্য মিথ্যা সেট করা যেতে পারে - CI রান এড়ানোর জন্য দৃঢ়ভাবে সুপারিশ করা হয়। -
androidx.benchmark.profiling.perfCompare.enable
পরীক্ষামূলক যুক্তি যোগ করা হয়েছে, পরিমাপ এবং প্রোফাইলিং পর্যায়গুলির মধ্যে তুলনার সময় চালানোর জন্য এটিকে সত্য হিসাবে সেট করুন। যেমন পদ্ধতি ট্রেসিং ওভারহেড মূল্যায়ন দরকারী. ( I61fb4 , b/329146942 )
এপিআই পরিবর্তন
-
TraceSectionMetric.Mode
পরিবর্তিত হয়েছে বিবৃতি ( I71f7b ) সম্পূর্ণ না করে ভবিষ্যৎ সম্প্রসারণ সক্ষম করতে সিল করা ক্লাসে -
TraceSectionMetric.Mode.Average
এবং.Count
যোগ করা হয়েছে এবং args পুনরায় সাজানো হয়েছে যাতে আরো সাধারণ আর্গুমেন্ট (মোড) আগে আর্গ তালিকায় ছিল, প্যারামিটারের নাম নির্দিষ্ট করার প্রয়োজনীয়তা হ্রাস করে। ( Ibf0b0 , b/315830077 , b/322167531 ) - রিটার্ন টাইপ ( I42595 ) এর সাথে মেলে
getMeasurements
Metric.getResult
নামকরণ করা হয়েছে
বাগ ফিক্স
-
automaticGenerationDuringBuild
বন্ধ থাকলে বেঞ্চমার্কগুলি জেনারেট করা বেসলাইন প্রোফাইলগুলি ব্যবহার করে তা নিশ্চিত করুন ( Ic144f , b/333024280 ) - একটি
nonMinified
বা বেঞ্চমার্ক বিল্ড টাইপ কাস্টমাইজ করার সময় বেসলাইন প্রোফাইল জেনারেশন এবং বেঞ্চমার্কিং সক্ষম করতেBaselineProfile
গ্রেডল প্লাগইন সম্পত্তি ওভাররাইডগুলি ঠিক করুন। ( Ib8f05 , b/324837887 ) - স্থির পদ্ধতির ট্রেসগুলি ম্যাক্রোবেঞ্চমার্কে ফ্লাশ করে, যাতে পদ্ধতির ট্রেসগুলি সম্পূর্ণরূপে ক্যাপচার করা এবং বৈধ হওয়া উচিত, এমনকি ধীর ডিভাইসেও। ( I6349a , b/329904950 )
- ট্রেসের শুরুতে ডেটা হারিয়ে যাওয়ার ঝুঁকি কমাতে পারফেটো ট্রেস রেকর্ডে ব্লক করা শুরু সক্ষম করুন। শুধুমাত্র API 33+ এ সমর্থিত। ( Ie6e41 , b/310760059 )
- বেঞ্চমার্ক মডিউলগুলিতে যখন Android টেস্ট অর্কেস্ট্রেটর ব্যবহার করা হয় তখন একটি সতর্কতা যোগ করা হয়েছে, কারণ এটি প্রতি-মডিউল আউটপুট JSON ফাইলগুলিকে বারবার ওভাররাইট করবে৷ ( IA1af6 , b/286899049 )
- স্টুডিও আউটপুটে ধারাবাহিকতার জন্য ',' (কমা) হাজার হাজার বিভাজককে বল করুন, ডিভাইস লোকেল উপেক্ষা করুন ( I3e921 , b/313496656 )
-
TraceSectionMetric
এখনTrace.{begin|end}AsyncSection
। ( I91b32 , b/300434906 ) - সমস্ত স্টার্টআপ সনাক্তকরণ ব্যর্থতায় log.w/ ব্যতিক্রম লেবেল যোগ করা হয়েছে। এটি বর্তমান আচরণ পরিবর্তন করে না (তাই কিছু ত্রুটি নিক্ষেপ করে, এবং অন্যরা নীরবে স্টার্টআপ সনাক্ত করতে ব্যর্থ হয়), এটি আরও বোধগম্য করে তোলে। সাধারণত যেগুলি
Log.w()
এবং স্টার্টআপ মেট্রিক্স রিপোর্ট করতে ব্যর্থ হয় সেগুলি হল যেখানে নন-ফ্রেম ইভেন্টগুলি অনুপস্থিত, ব্যতিক্রমগুলি ছুঁড়ে দেওয়া হয় যখন স্টার্টআপ শনাক্ত করা হয় ফ্রেম টাইমিং তথ্য (UI/RT স্লাইস থেকে) ছাড়া৷ ( Id240f , b/329145809 ) - হস্তক্ষেপ কমাতে ম্যাক্রোবেঞ্চমার্ক চালানোর আগে ব্যাকগ্রাউন্ড ডেক্সপট কাজগুলি বাতিল করুন। ( I989ed )
-
FrameTimingMetric
এframeCount
পরিমাপ যোগ করা হয়েছে এমন পরিস্থিতির আবিষ্কারে সাহায্য করার জন্য যেখানে পরিমাপ পরিবর্তিত হয় কারণ উত্পাদিত ফ্রেমের সংখ্যা পরিবর্তিত হয় (নতুন অ্যানিমেশন যোগ করা হয়েছে, অবৈধতা সংক্রান্ত সমস্যাগুলি সংশোধন করা হয়েছে)। ( I1e5aa ) - স্পষ্ট করা হয়েছে যে ডক্সে উপলব্ধ হলে ট্র্যাকিংয়ের জন্য
frameOverrunMs
পছন্দের মেট্রিক এবং কেন। ( I18749 , b/329478323 )
সংস্করণ 1.3.0-alpha02
20 মার্চ, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha02-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
এমবেডেড প্রোগার্ড নিয়মের মাধ্যমে মাইক্রোবেঞ্চে পরীক্ষামূলক R8 সমর্থন। মনে রাখবেন যে এই সমর্থনটি পরীক্ষামূলক, এবং লাইব্রেরি মডিউল পরীক্ষাগুলি ছোট করার জন্য AGP 8.3 প্রয়োজন৷ আপনার বেঞ্চমার্ক মডিউলের
build.gradle
এ R8 মিনফিকেশন/অপ্টিমাইজেশন সক্ষম করতে নিম্নলিখিতটি ব্যবহার করুন, যা কাজের চাপের উপর নির্ভর করে একটি উল্লেখযোগ্য কর্মক্ষমতা বৃদ্ধির দিকে পরিচালিত করবে। ( I738a3 , b/184378053 )android { buildTypes.release.androidTest.enableMinification = true }
বাগ ফিক্স
- মাইক্রোবেঞ্চ আউটপুট থেকে পৃথক লাইনে থাকা পদ্ধতি ট্রেসিং সতর্কতা সংশোধন করে। ( I0455c , b/328308833 )
সংস্করণ 1.3.0-alpha01
21 ফেব্রুয়ারি, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- অপ্রয়োজনীয় শব্দ 'উচিত' ( Ia8f00 , b/303387299 ) এড়াতে
MicrobenchmarkConfig
বুলিয়ান প্যারামিটারের নাম পরিবর্তন করা হয়েছে -
BenchmarkRule.measureRepeatedOnMainThread
যোগ করা হয়েছে যাতে প্রধান থ্রেড বেঞ্চমার্ক (যেমন ভিউ বা কম্পোজ UIs স্পর্শ করে) ANR ট্রিগার করা এড়াতে পারে, বিশেষ করে CI-তে বড় স্যুটগুলির সময়। ( I5c86d ) -
FrameTimingGfxInfoMetric
যোগ করা হয়েছে, যা Perfetto ট্রেস থেকে বের না করে সরাসরি প্ল্যাটফর্ম থেকে আসা পরিমাপ সহFrameTimingMetric
এর একটি পরীক্ষামূলক বিকল্প বাস্তবায়ন। ( I457cb , b/322232828 ) - পৃথক
warmUp
পুনরাবৃত্তির সময় একটি ART প্রোফাইল ডাম্প করার ক্ষমতা যোগ করুন। ( I17923 ) -
TraceSectionMetric
API-তে বেশ কিছু পরিবর্তন:-
Mode.Min
,Mode.Max
যোগ করুন - মেট্রিক লেবেল হিসাবে বিভাগের নাম ওভাররাইড করতে লেবেল যুক্তি যোগ করুন
- মেট্রিক অর্থ স্পষ্ট করতে আউটপুটে মোড নাম যোগ করা হয়েছে
- ডিফল্ট যোগে পরিবর্তন করা হয়েছে, কারণ এই মেট্রিকের বেশির ভাগ ব্যবহার বারবার ইভেন্টের জন্য। CI ব্যবহারে এই পরিবর্তনগুলি সম্পর্কে সচেতন থাকুন, কারণ এটি বিচ্ছিন্নতা বা পার্সিং ভেঙে দিতে পারে। ( Ic1e82 , b/301892382 , b/301955938 )
-
বাগ ফিক্স
- বেসলাইন প্রোফাইল গ্রেডল প্লাগইনে উন্নত ত্রুটি বার্তা যখন নির্দিষ্ট করা পরিচালিত ডিভাইসটি বিদ্যমান না থাকে ( Idea2b , b/313803289 )
- AGP 8.3.0-alpha15 ( I1d2af , b/313992099 ) এর আগে AAR-এ লাইব্রেরি বেসলাইন প্রোফাইল অন্তর্ভুক্ত করার জন্য ঠিক করুন
- জেনারেশন টাস্কের শেষে ফিক্সড বেসলাইন এবং স্টার্টআপ প্রোফাইল আউটপুট ইউআরএল ( I802e5 , b/313976958 )
- java.lang.IllegalStateException ঠিক করার চেষ্টা করার জন্য সামঞ্জস্য করা ডেটা সোর্স টাইমআউট: [ProcessPid(processName=perfetto, pid=...)] ( I8dc7d , b/323601788 )
java.lang.IllegalStateException: Failed to stop [ProcessPid(processName=perfetto, pid=...)]
-
ProfileInstaller
1.3 ছাড়া অ্যাপস বেঞ্চমার্ক করার সময় শেডার ড্রপিং আচরণ ওভাররাইড করার জন্য দুটি ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করুন:-
androidx.benchmark.dropShaders.enable=true/false
: সমস্ত শেডার ড্রপিং (StartupMode.Cold
লঞ্চ সহ) এড়িয়ে যেতে ব্যবহার করা যেতে পারে, বিশেষ করে বেঞ্চমার্ক করার সময় অ্যাপগুলি যেগুলি এখনও প্রোফাইলইনস্টলার 1.3 ব্যবহার করে না -
androidx.benchmark.dropShaders.throwOnFailure=true/false
: শেডার্স ড্রপ করার চেষ্টা করার সময় ব্যর্থতা সহ্য করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ যখন প্রোফাইলইনস্টলার 1.3 ( I4f573 ) ছাড়া অ্যাপের বেঞ্চমার্কিং
-
- UI থ্রেডে পদ্ধতির ট্রেসিং এড়িয়ে যান যখন কয়েক সেকেন্ডের বেশি সময় লাগবে বলে প্রত্যাশিত হয়, এবং নিক্ষেপ করার সময় ক্লিনআপ পদ্ধতি ট্রেসিং। ( I6e768 )
- ফাইলের নাম 200 অক্ষরের বেশি হলে ফেলুন যাতে ফাইল লেখার সময় বা পোস্ট-প্রসেসিং করার সময় অস্পষ্ট ক্র্যাশ এড়াতে হয়। ( I4a5ab )
- সমস্যার সমাধান করে যেখানে ট্রেসের শুরুতে এবং শেষের শেষ না হওয়া ফ্রেমগুলিকে একসাথে যুক্ত করা যেতে পারে, যা একটি একক অত্যন্ত দীর্ঘ ফ্রেম হিসাবে ভুলভাবে রিপোর্ট করবে। ( I39353 , b/322232828 )
- ব্যবহারকারী বিল্ডে এআরটি প্রোফাইলগুলি সাফ করতে API 30-33 এ একটি প্যাকেজ পুনরায় ইনস্টল করার সময় API 30+-এ
--skip verification
ব্যবহার করুন। এটি Play Protect সতর্কতাগুলিকে বাইপাস করতে সাহায্য করে যা কিছু শ্রেণীর ডিভাইসে ব্যর্থতার কারণ হয়। ( IC9e36 ) - সিস্টেম UI বা লঞ্চারের মতো সিস্টেম অ্যাপ না থাকলে অ্যাপগুলিকে হত্যা করতে
am force-stop
ব্যবহার করুন। ( I5e028 ) - ম্যাক্রোবেঞ্চমার্ক এখন একটি ART প্রোফাইল ফ্লাশ করার লক্ষ্য অ্যাপ্লিকেশনটির জন্য
1 second
জন্য অপেক্ষা করে (আগে এটি500 ms
এর জন্য অপেক্ষা করত)। ( I85a50 , b/316082056 ) -
FrameTimingMetric
ত্রুটি উন্নত করুন যখন ফ্রেম তৈরি করা হয় না, এবং সমস্যা নির্ণয়ে সহায়তা করার জন্য মেট্রিক পার্সিং ব্যর্থ হলে সর্বদা ট্রেস লিঙ্ক আউটপুট করুন। ( I956b9 ) -
FrameTimingMetric
এ স্থির ক্র্যাশ ফ্রেম আইডি পার্স করতে ব্যর্থ হয়েছে, বিশেষ করে নির্দিষ্ট কিছু OEM ডিভাইসে। ( IA24bc , b/303823815 , b/306235276 ) -
FrameMetrics
চেকের কঠোরতা শিথিল করা হয়েছে এবং ত্রুটির বার্তাগুলিতে আরও বিশদ যোগ করা হয়েছে। ( ইয়াদেদে )
সংস্করণ 1.2
সংস্করণ 1.2.4
এপ্রিল 17, 2024
androidx.benchmark:benchmark-*:1.2.4
প্রকাশিত হয়েছে। সংস্করণ 1.2.4-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- বেসলাইন প্রোফাইল srcset বেঞ্চমার্ক ভেরিয়েন্টে সেট আপ হচ্ছে না তা ঠিক করে। এছাড়াও একটি বৃত্তাকার নির্ভরতা সৃষ্টি করে লাইব্রেরিতে
automaticGenerationDuringBuild
ঠিক করে। ( I28ab7 , b/333024280 ) - সিস্টেম UI বা লঞ্চারের মতো সিস্টেম অ্যাপ না থাকলে অ্যাপগুলিকে হত্যা করতে
am force-stop
ব্যবহার করুন। এটি "প্যাকেজ $package কোল্ড স্টার্টের আগে চলতে হবে না!" থেকেStartupMode.COLD
বেঞ্চমার্কের ক্র্যাশের সমাধান করে। প্রক্রিয়ার কারণে হত্যা সম্পূর্ণরূপে সফল হচ্ছে না। ( I5e028 )
সংস্করণ 1.2.3
24 জানুয়ারী, 2024
androidx.benchmark:benchmark-*:1.2.3
প্রকাশিত হয়েছে। সংস্করণ 1.2.3 এই কমিট ধারণ করে.
বাগ ফিক্স
- AGP সংস্করণ 8.3.0 বা উচ্চতর হলে বেসলাইন প্রোফাইল গ্রেডল প্লাগইন থেকে ব্যতিক্রম সরানো হয়েছে।
- AGP 8.3.0-alpha15 এর আগে AAR-এ লাইব্রেরি বেসলাইন প্রোফাইল অন্তর্ভুক্ত করার জন্য ঠিক করুন।
সংস্করণ 1.2.2
ডিসেম্বর 1, 2023
androidx.benchmark:benchmark-*:1.2.2
প্রকাশিত হয়েছে। সংস্করণ 1.2.2-এ এই কমিট রয়েছে।
বেসলাইন প্রোফাইল
- এক্সিকিউশন লগগুলি স্থানীয় ফাইল URI হিসাবে বেসলাইন প্রোফাইল আউটপুট ফাইল পাথ দেখাবে ( aosp/2843918 , aosp/2853665 , b/313976958 )
সংস্করণ 1.2.1
15 নভেম্বর, 2023
androidx.benchmark:benchmark-*:1.2.1
প্রকাশিত হয়েছে। সংস্করণ 1.2.1 এই কমিট ধারণ করে.
নতুন বৈশিষ্ট্য
- ব্যবহারকারী পরীক্ষার ভেরিয়েন্ট অক্ষম করলে উন্নত ত্রুটি বার্তা ( b/307478189 )
- AS পরীক্ষা চালানোর ইন্টিগ্রেশন সমর্থন করার জন্য বৈশিষ্ট্য যুক্ত করা হয়েছে ( b/309805233 ), ( b/309116324 )
সংস্করণ 1.2.0
18 অক্টোবর, 2023
androidx.benchmark:benchmark-*:1.2.0
প্রকাশিত হয়েছে। সংস্করণ 1.2.0 এই কমিট ধারণ করে.
1.1.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
বেসলাইন প্রোফাইল
- নতুন বেসলাইন প্রোফাইল গ্রেডল প্লাগইন স্বয়ংক্রিয়ভাবে ক্যাপচারিং এবং আপনার পরীক্ষায় বেসলাইন প্রোফাইল অন্তর্ভুক্ত করে এবং ওয়ার্কফ্লো তৈরি করে।
-
BaselineProfileRule.collect
এখন স্থিতিশীল, পূর্ববর্তী পরীক্ষামূলকBaselineProfileRule.collectBaselineProfile
API এর একটি সুবিন্যস্ত এবং সরলীকৃত সংস্করণ- শুধু
packageName
উল্লেখ করুন এবং আপনার অ্যাপ চালান
- শুধু
- বেসলাইন প্রোফাইল তৈরি করা লাইব্রেরিগুলির জন্য, আপনি এখন কোডে (
BaselineProfileRule.collect
আর্গুমেন্ট) বা আরও সহজভাবে গ্রেডল প্লাগইনে তৈরি করা নিয়মগুলি ফিল্টার করতে পারেন - সংশোধন করে
- অ্যান্ড্রয়েড U+ ( Id1392 , b/277645214 ) এ স্থায়ী বেসলাইন প্রোফাইল সংগ্রহ
ম্যাক্রোবেঞ্চমার্ক
- সংকলন
- ম্যাক্রোবেঞ্চমার্ক এখন সঠিকভাবে প্রতিটি কম্পাইলের জন্য কম্পাইলেশন স্টেট সম্পূর্ণরূপে রিসেট করে - এর জন্য Android 14 এর আগে APK পুনরায় ইনস্টল করা প্রয়োজন, তাই আপনি যদি পরিমাপ করা হচ্ছে সেই অবস্থা (যেমন ব্যবহারকারী লগইন) বজায় রাখতে চান তাহলে Android 14+ তে বেঞ্চমার্ক করার জোরালো পরামর্শ দেওয়া হয়।
- আপনি আলাদাভাবে অ্যাপ কম্পাইলেশন নিয়ন্ত্রণ করে এবং
CompilationMode.Ignore()
বা ইনস্ট্রুমেন্টেশন আর্গুমেন্টের সাথে কম্পাইলেশন এড়িয়ে যাওয়ার মাধ্যমেও এটিকে ঘিরে কাজ করতে পারেন
ইন্সট্রুমেন্টেশন আর্গুমেন্ট
-
androidx.benchmark.dryRunMode.enable
ইন্সট্রুমেন্টেশন আর্গুমেন্টের জন্য সমর্থন, (ইতিমধ্যেই মাইক্রোবেঞ্চমার্কে উপলব্ধ) দ্রুত বৈধতা চালানোর জন্য (যেমন বেঞ্চমার্ক তৈরি করার সময়, বা প্রিসবমিট করার সময়) -
androidx.benchmark.profiling.mode=StackSampling
এবংMethodTracing
এর জন্য সমর্থন। - রানটাইম ফিল্টারিং বেসলাইন প্রোফাইল বনাম ম্যাক্রোবেঞ্চমার্ক নিয়ম পরীক্ষার অনুমতি দিতে
androidx.benchmark.enabledRules
যোগ করা হয়েছে -
androidx.benchmark.perfettoSdkTracing.enable
আর্গুমেন্ট যোগ করা হয়েছে ট্রেসিং-পারফেটোর সাথে ট্রেসিং সক্ষম করতে, যেমন কম্পোজ রিকম্পোজিশন ট্রেসিং। মনে রাখবেন যে যখনStartupMode.COLD
এর সাথে ব্যবহার করা হয়, তখন সময় উল্লেখযোগ্যভাবে প্রভাবিত হবে কারণ অ্যাপ স্টার্টআপের সময় ট্রেসিং লাইব্রেরি লোড এবং সক্ষম হয়।
-
প্রয়োজনীয়তা
- ম্যাক্রোবেঞ্চমার্কের এখন প্রোফাইল ক্যাপচার/রিসেট এবং শেডার ক্যাশে ক্লিয়ারিং সক্ষম করতে লক্ষ্য অ্যাপে
ProfileInstaller
1.3.0 বা তার বেশি প্রয়োজন।
- ম্যাক্রোবেঞ্চমার্কের এখন প্রোফাইল ক্যাপচার/রিসেট এবং শেডার ক্যাশে ক্লিয়ারিং সক্ষম করতে লক্ষ্য অ্যাপে
নতুন পরীক্ষামূলক মেট্রিক API
- পরীক্ষামূলক
TraceSectionMetric
যোগ করা হয়েছে, যা আপনার অ্যাপেরtrace("") {}
ব্লকগুলি থেকে সহজ সময় বের করার অনুমতি দেয়, বা PerfettoTraceProcessor
এর সম্পূর্ণ ক্যোয়ারী ক্ষমতার সুবিধার জন্য TraceMetric । - পাওয়ার ব্যবহারের তথ্য ক্যাপচার করতে পরীক্ষামূলক
PowerMetric
যোগ করা হয়েছে - পৃষ্ঠার ত্রুটিগুলি গণনা করতে পরীক্ষামূলক
MemoryCountersMetric
যোগ করা হয়েছে৷ - পরীক্ষামূলক
PerfettoTraceProcessor
API যোগ করা হয়েছে, যা অভ্যন্তরীণভাবে সিস্টেম ট্রেস (ওরফে পারফেটো ট্রেস) থেকে মেট্রিক্স বের করতে ব্যবহৃত হয়
- পরীক্ষামূলক
সংশোধন করে
- একাধিক APK (যেমন অ্যাপ বান্ডেল থেকে) থেকে ইনস্টল করা একটি অ্যাপ থেকে প্রোফাইল ইনস্টল বা এক্সট্র্যাক্ট করার সময় স্থির ক্র্যাশগুলি।
- ফিক্সড
FrameTimingMetric
অসামঞ্জস্য ফ্রেম আইডিগুলির সাথে ফ্রেমগুলি উপেক্ষা করে (সাধারণত, এপিআই 31+ এ রিপল চলাকালীন ফ্রেম) ( আই 747 ডি 2 , বি/279088460 ) - ট্রেসগুলিতে স্থির পার্সিং ত্রুটিগুলি> 64 এমবি ( আইইএফ 831 , বি/269949822 )
- যখন ডিভাইস (বিশেষত এমুলেটর) ওএস চিত্রটি ট্রেসিং বা সংকলনের জন্য সঠিকভাবে কনফিগার করা হয়নি তখন স্পষ্ট ত্রুটিগুলি
- ব্যাটারি ছাড়াই ডিভাইসের জন্য ব্যাটারি স্তর চেক এড়িয়ে যান (মাইক্রো এবং ম্যাক্রো)
- অবৈধ আউটপুট ডিরেক্টরিগুলির জন্য আরও স্পষ্ট ত্রুটি সহ এবং নিরাপদ ডিফল্টগুলির সাথে উন্নত ফাইল আউটপুট উন্নত
- ধারাবাহিকভাবে শেডার ক্যাশে ফেলে দিয়ে
StartupMode.COLD
উন্নত স্থায়িত্ব (MacrobenchmarkScope.dropShaderCache
এর মাধ্যমেও উন্মুক্ত) -
startActivityAndWait
জন্য স্থির লিনব্যাক ফ্যালব্যাক।
মাইক্রোবেঞ্চমার্ক
- বৈশিষ্ট্য
- অন্যান্য মেট্রিকের পরে প্রোফাইলিং একটি পৃথক পর্যায়ে স্থানান্তরিত করা হয়েছিল, সুতরাং একটি পরীক্ষার রান সঠিক সময় এবং প্রোফাইলিং ফলাফল উভয়ই প্রদর্শন করতে পারে।
- পরীক্ষামূলক API
- কাস্টম মেট্রিকগুলি সংজ্ঞায়িত করার জন্য এবং ট্রেসিং এবং প্রোফাইলিং কনফিগার করার জন্য পরীক্ষামূলক
MicrobenchmarkConfig
এপিআই যুক্ত করা হয়েছে। পদ্ধতির ট্রেসগুলি ক্যাপচার করতে বা ট্রেসপয়েন্টগুলি ক্যাপচার করতে ব্যবহার করা যেতে পারে (তবে ওভারহেড ট্রেসিং সম্পর্কে সচেতন হতে হবে)। - জুনিট ছাড়াই
BenchmarkRule
থেকে পৃথকভাবেBenchmarkState
নিয়ন্ত্রণের জন্য পরীক্ষামূলক এপিআই যুক্ত করা হয়েছে - বেঞ্চমার্ক এপিআই থেকে পৃথক কাস্টম কনফিগারেশন সহ পারফেটো ট্রেস ক্যাপচার সক্ষম করতে পরীক্ষামূলক
PerfettoTrace
রেকর্ড যুক্ত করা হয়েছে।
- কাস্টম মেট্রিকগুলি সংজ্ঞায়িত করার জন্য এবং ট্রেসিং এবং প্রোফাইলিং কনফিগার করার জন্য পরীক্ষামূলক
- সংশোধন করে
- অ্যান্ড্রয়েড স্টুডিও বেঞ্চমার্ক আউটপুটে শীর্ষস্থানীয় হোয়াইটস্পেসগুলি নিখোঁজ।
- সমস্যাটি সমাধান করুন যেখানে সতর্কতাগুলি অ্যান্ড্রয়েড স্টুডিও বেঞ্চমার্ক আউটপুটে মুদ্রণ করতে ব্যর্থ হতে পারে।
- অ্যান্ড্রয়েড 13 (এপিআই 33) এবং উচ্চতর উপর স্থির
SampledProfiling
ক্র্যাশ। -
IsolationActivity
এবং পারফেটো ট্রেসিং (পুরানো ওএস সংস্করণগুলিতে 10x দ্রুত শুকনো রান মোড পর্যন্ত) এড়িয়ে যাওয়া দ্বারাdryRunMode
ব্যাপকভাবে উন্নত পারফরম্যান্স।
সংস্করণ 1.2.0-আরসি 02
6 অক্টোবর, 2023
androidx.benchmark:benchmark-*:1.2.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আরসি 02 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
-
BaselineProfile
প্লাগইন ফাইল অনুলিপি করার জন্য আর বেঞ্চমার্ক ফাইল আউটপুট ঠিক করুন। ফাইলগুলি তৈরি করা হয়েছিল এবং ডিভাইসটি অনুলিপি করা হয়েছিল, তবে এর নামকরণ করা হয়েছিল যে গ্রেডল প্লাগইন সেগুলি দেখতে পাবে না। ( আই 8 ডিবিসিসি , বি/303034735 , বি/2964533339 ) - ম্যাক্রোব্যাঞ্চমার্ক মডিউল থেকে লক্ষ্য অ্যাপ্লিকেশনটিতে ইনজেকশনের সময় স্পষ্ট
tracing-perfetto
লোডিং ত্রুটি বার্তাগুলি।
সংস্করণ 1.2.0-আরসি 01
20 সেপ্টেম্বর, 2023
androidx.benchmark:benchmark-*:1.2.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- একটি ব্যতিক্রম (প্রতিকারের নির্দেশাবলী সহ) এখন নিক্ষেপ করা হয় যখন পারফেটো এসডিকে ট্রেসিং কোনও বেঞ্চমার্কে শুরু করতে ব্যর্থ হয়। ( I6c878 , খ/286228781 )
- আর্ট পদ্ধতি ট্রেস রূপান্তর করার সময় ওম ক্র্যাশটি ঠিক করুন -> পারফেটো ফর্ম্যাট। ( আই 106 বিডি , বি/296905344 )
- (ম্যাক্রোব্যাঞ্চমার্ক) স্টুডিও টেস্ট আউটপুটে লিঙ্ক করা হলে এবং ডিভাইস/হোস্টে অনন্য হওয়ার জন্য ফাইলের নামগুলি ট্রেসিং ট্রেসিং ট্রেসিং লেবেলটি স্পষ্ট করে দেওয়া হয়েছে, সুতরাং একাধিক বেঞ্চমার্ক চালানো হলে সেগুলি ওভাররাইট করা হবে না। ( I08e65 , খ/285912360 )
- বেসলাইন প্রোফাইল ক্যাপচার করার সময় ডিভাইসটি জাগ্রত রয়েছে তা নিশ্চিত করে। ( I503fc )
সংস্করণ 1.2.0-BETA05
30 আগস্ট, 2023
androidx.benchmark:benchmark-*:1.2.0-beta05
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA05 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- বেসলাইন প্রোফাইল গ্রেডল প্লাগইন এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.3 সমর্থন করে। ( এওএসপি/2715214 )
সংস্করণ 1.2.0-BETA04
23 আগস্ট, 2023
androidx.benchmark:benchmark-*:1.2.0-beta04
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA04 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- বেসলাইন প্রোফাইল গ্রেডল প্লাগইন এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.3 সমর্থন করে। ( এওএসপি/2715214 )
বাগ ফিক্স
- আউটপুট ফাইলের নামগুলি আরও স্যানিটাইজ করে, আউটপুট ফাইলের নামগুলিতে '=' এবং ':' এড়িয়ে যাওয়া ফাইলগুলি (বিশেষত প্যারামিটারাইজড পরীক্ষাগুলি থেকে) লেখার / সরানো এবং টানতে ব্যর্থতাগুলি সমাধান করুন। ( I759d8 )
সংস্করণ 1.2.0-BETA03
9 আগস্ট, 2023
androidx.benchmark:benchmark-*:1.2.0-beta03
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA03 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- ফিল্টার
TraceSectionMetric
কেবলমাত্র লক্ষ্য প্যাকেজে ডিফল্টরূপে যুক্ত করা হয়েছে ( আইএ 219 বি, বি/292208786 )
বাগ ফিক্স
-
fullTracing.enable
instractation আর্গুমেন্টের নামকরণperfettoSdkTracing.enable
fullTracing.enable
ফ্যালব্যাক হিসাবে কাজ চালিয়ে যাবে। ( I7cc00 ) - বেঞ্চমার্ক লাইব্রেরি অভ্যন্তরীণ ট্রেসপয়েন্টগুলি (মাইক্রোব্যাঞ্চমার্ক লুপ/ফেজ ট্রেসিং সহ) এখন স্টুডিও সিস্টেম ট্রেস ভিউয়ারে প্রদর্শিত হবে এবং পারফেটোতে সঠিক প্রক্রিয়াটির অধীনে বাসা বাঁধবে। ( I6b2e7 , বি/293510459 )
- এপিআই 31+ এ ম্যাক্রোব্যাঞ্চমার্কটি-অ-প্রফিলেবল ত্রুটি অপসারণ করা হয়েছে এবং ইঞ্জিন/ইউজারডিবাগ রুটযুক্ত ডিভাইসগুলিতে প্রোফাইলযোগ্য চেক এড়িয়ে যান। ( I2abac , খ/291722507 )
- ডেক্স লেআউট অপ্টিমাইজেশন ব্যবহার করার সময়, স্টার্টআপ প্রোফাইল বিধিগুলি এখন বেসলাইন প্রোফাইল বিধি হিসাবেও বিবেচিত হয়। ( এওএসপি/2684246 , বি/293889189 )
সংস্করণ 1.2.0-BETA02
জুলাই 26, 2023
androidx.benchmark:benchmark-*:1.2.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA02 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- মাইক্রোব্যাঞ্চ কাস্টম মেট্রিক এবং কনফিগারেশনের জন্য পরীক্ষামূলক এপিআই যুক্ত করা হয়েছে (যেমন প্রোফাইলার এবং ট্রেসিং)। ( I86101 , বি/291820856 )
বাগ ফিক্স
- ম্যাক্রোব্যাঞ্চে ত্রুটি প্রতিবেদন ত্রুটি যখন ট্রেসিংয়ের জন্য ওএস ভুল কনফিগার করা হয়, যেমনটি সম্প্রতি এপিআই 26/28 এআরএম 64 এমুলেটরগুলিতে স্থির করা হয়েছিল। ( I0a328 , খ/282191686 )
- এমুলেটর আপডেট করার পরামর্শ দেওয়ার জন্য সংকলন পুনরায় সেট করতে ব্যর্থতায় বিশদ যুক্ত করা হয়েছে, কারণ কিছু এমুলেটর সম্প্রতি এই সমস্যাটি স্থির করেছে। ( I8c815 , খ/282191686 )
-
androidx.test.uiautomator:uiautomator:2.2.0
implementation
নির্ভরতার পরিবর্তে একটিapi
। ( I1981e )
সংস্করণ 1.2.0-BETA01
18 জুলাই, 2023
androidx.benchmark:benchmark-*:1.2.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA01 এর মধ্যে এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- স্টুডিওতে কখনও কখনও বেঞ্চমার্ক আউটপুটে দমন করা সতর্কতাগুলি ঠিক করুন এবং স্টুডিওতে প্রদর্শিত না হওয়া বেঞ্চমার্ক আউটপুট থেকে ওয়ার্কআউটআউন্ড লিডিং হোয়াইটস্পেসগুলি ( আইএ 61 ডি 0 , বি/227205461 , বি/286306579 , বি/285912360 )
-
FrameTimingMetric
জন্য স্থির মন্তব্য। সাবমেট্রিকের নামframeDurationCpuMs
। ( আইবি 097 এফ , বি/288830934 )।
সংস্করণ 1.2.0-আলফা 16
জুন 21, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha16
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA16 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
BaselineProfileRule.collectBaselineProfile()
এপিআই নামকরণ করা হয়েছেBaselineProfileRule.collect()
এ নামকরণ করা হয়েছে। ( I4b665 )
বাগ ফিক্স
-
androidx.benchmark.profiling.mode = MethodTracing
এর জন্য ম্যাক্রোব্যাঞ্চমার্ক সমর্থন সমর্থন। ( I7ad37 , খ/285912360 ) - মাইক্রোব্যাঞ্চমার্ক প্রোফাইলিং একটি পৃথক পর্যায়ে চলে গেছে, সুতরাং এটি প্রতিস্থাপনের পরিবর্তে পরিমাপের পরে ক্রম অনুসারে ঘটে।
MethodTracing
ট্রেস বিভাগগুলিও এখন উপস্থিত থাকলে ক্যাপচারড পারফেটো ট্রেসে অন্তর্ভুক্ত রয়েছে। ( I9f657 , খ/285014599 ) -
Mode.Sum
সহTraceSectionMetric
গণনা পরিমাপ যুক্ত করুন। ( আইসি 121 এ , বি/264398606 )
সংস্করণ 1.2.0-আলফা 15
7 জুন, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha15
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আলফা 15 এ এই কমিটস রয়েছে।
নতুন বৈশিষ্ট্য
- লক্ষ্য প্রয়োগের মেমরি ব্যবহার ট্র্যাক করার জন্য পরীক্ষামূলক
MemoryUsageMetric
যুক্ত করা হয়েছে। ( I56453 , খ/133147125 , বি/281749311 ) -
PerfettoTrace.record
( আইএফ 9 ডি 75 , বি/280460183 ) সহ সম্পূর্ণ কাস্টম পারফেটো কনফিগারেশনগুলির জন্য সমর্থন যুক্ত করুন - বেসলাইন প্রোফাইল প্রজন্ম এড়িয়ে যেতে সম্পত্তি যুক্ত করা হয়েছে। ব্যবহার
./gradlew assemble -Pandroidx.baselineprofile.skipgeneration
( I37fda , খ/283447020 )
এপিআই পরিবর্তন
-
collectBaselineProfile
এপিআই সর্বদা স্থিতিশীল বেসলাইন প্রোফাইল তৈরি করে।collectStableBaselineProfile
এপিআই সরানো হয়েছে এবং পরিবর্তেcollectBaselineProfile
ব্যবহার করা উচিত। ( I17262 , খ/281078707 ) -
BaselineProfileRule
filterPredicate
আরগকে নন-নুলে পরিবর্তিত হয়েছে, সমতুল্য ডিফল্ট মান সহ যাতে ডিফল্ট ফিল্টার আচরণ ডক্সে আরও স্পষ্ট হয়। ( I3816e )
বাগ ফিক্স
- পারফরম্যান্সকে উল্লেখযোগ্যভাবে উন্নত করতে
dryRunMode
IsolationActivity
এবং পারফেটো ট্রেসিং অক্ষম করুন, কারণ এগুলি রানটাইমের সংখ্যাগরিষ্ঠ ছিল। ( Ie4f7d ) - ইনস্ট্রুমেন্টেশন টেস্ট আর্গুমেন্টস
androidx.benchmark.profiling.mode=StackSampling
এবংandroidx.benchmark.profiling.sampleFrequency
ব্যবহার করে ম্যাক্রোব্যাঞ্চমার্কগুলিতে কল স্ট্যাক স্যাম্পলিংয়ের জন্য সমর্থন। ( আই 1 ডি 13 বি , বি/282188489 ) - অ্যান্ড্রয়েড ইউ (এপিআই 34), পাশাপাশি এমুলেটরগুলিতে শেডারগুলি ফেলে দেওয়ার সময় ফিক্স ক্র্যাশগুলি। ( I031ca , খ/274314544 )
সংস্করণ 1.2.0-আলফা 14
3 মে, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha14
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আলফা 14 এ এই কমিটস রয়েছে।
বাগ ফিক্স
- বেমানান ফ্রেম আইডি সহ ফ্রেমগুলি উপেক্ষা করে
FrameTimingMetric
ঠিক করুন। এটি সাম্প্রতিক প্ল্যাটফর্ম সংস্করণগুলিতে (এপিআই 31+) কিছু অ্যানিমেশনগুলির কারণ হতে পারে যখনRenderThread
অ্যানিমেটিং ছিল (যেমন একটি রিপল চলাকালীন)। ( I747d2 , বি/279088460 ) - ফিক্সড ট্রেস প্রসেসর 64 এমবি এর চেয়ে বড় ট্রেসগুলির জন্য পার্সিং। ( আইইএফ 831 , বি/269949822 )
- অ্যান্ড্রয়েডে স্থির বেসলাইন প্রোফাইল প্রজন্ম ইউ ব্যর্থ হচ্ছে কারণ
pm dump-profiles
কমান্ডের বিভিন্ন আউটপুট। ( আইডি 1392 , বি/277645214 ) - স্ট্রিংগুলি সঠিকভাবে তুলনা করতে জিপিইউ ক্লক লকিং স্ক্রিপ্টটি ঠিক করুন ( i53e54 , বি/213935715 )
সংস্করণ 1.2.0-আলফা 13
5 এপ্রিল, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha13
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আলফা 13 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- আসন্ন স্টার্টআপ প্রোফাইল বৈশিষ্ট্যটিকে সমর্থন করার জন্য বেসলাইন প্রোফাইলগুলি তৈরি করার সময় প্রোফাইল টাইপ প্যারামিটার যুক্ত করা হয়েছে ( আইই 20 ডি 7 , বি/275093123 )
- পারফেটো ট্রেসের সামগ্রীর ভিত্তিতে সম্পূর্ণ কাস্টম মেট্রিকগুলি সংজ্ঞায়িত করার জন্য নতুন পরীক্ষামূলক
TraceMetric
এপিআই যুক্ত করা হয়েছে। ( I4ce31 , খ/219851406 ) - একটি বেঞ্চমার্কের সময় পৃষ্ঠা ত্রুটিগুলির সংখ্যা নির্ধারণ করতে একটি পরীক্ষামূলক মেট্রিক যুক্ত করুন। ( I48db0 )
সংস্করণ 1.2.0-আলফা 12
22 মার্চ, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha12
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আলফা 12 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- নতুন বেসলাইন প্রোফাইল গ্রেডল প্লাগইনটি আলফা সংস্করণে প্রকাশিত হয়েছে, এটি একটি বেসলাইন প্রোফাইল তৈরি করা এবং বিকাশকারী কর্মপ্রবাহকে সহজতর করে তোলে।
এপিআই পরিবর্তন
- এপিআই 21 এবং 22 এ পারফেটো ট্রেসিং সমর্থন সরানো হয়েছে, যার মধ্যে মাইক্রোব্যাঞ্চমার্ক এবং পরীক্ষামূলক
PerfettoTrace
এপিআই উভয়ই অন্তর্ভুক্ত রয়েছে। এই সংস্করণটির আগে,UiAutomation
সংযোগগুলি কিছু ডিভাইসে অবিশ্বাস্য ছিল। ( I78e8c ) - পার্সিং ট্রেস সামগ্রী সক্ষম করতে
PerfettoTraceProcessor
জন্য পাবলিক পরীক্ষামূলক এপিআই যুক্ত করা হয়েছে। এটি পারফেটো ট্রেস ডেটার উপর ভিত্তি করে সম্পূর্ণ কাস্টম মেট্রিকগুলির দিকে এক ধাপ। ( I2659e , বি/219851406 )
সংস্করণ 1.2.0-আলফা 11
8 মার্চ, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha11
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আলফা 11 এ এই কমিটস রয়েছে।
বাগ ফিক্স
- একাধিক এপিকে সহ একটি অ্যাপ্লিকেশন বান্ডিল থেকে প্রোফাইলগুলি পুনরায় ইনস্টল করা বা আহরণ করার সময়
MacrobenchmarkRule
এবংBaselineProfileRule
স্থির ক্র্যাশগুলি। ( I0d8c8 , বি/270587281 )
সংস্করণ 1.2.0-আলফা 10
22 ফেব্রুয়ারি, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আলফা 10 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- অ্যান্ড্রয়েড 14+ এ, ম্যাক্রোব্যাঞ্চমার্ক আর একটি নতুন প্ল্যাটফর্ম বৈশিষ্ট্যের জন্য ধন্যবাদ সংকলন অবস্থার পুনরায় সেট করতে লক্ষ্য অ্যাপ্লিকেশনগুলিকে পুনরায় ইনস্টল করে না। পূর্বে একটি মূল ডিভাইস থাকা বা প্রতিটি বেঞ্চমার্ক চালানোর আগে সমস্ত অ্যাপ্লিকেশন স্টেট (যেমন ব্যবহারকারী লগইন) অপসারণ করা দরকার ছিল। ( I9b08c , খ/249143766 )
বাগ ফিক্স
- সংকলন স্কিপিংয়ের কারণে খালি প্রোফাইলের সাথে আর ক্র্যাশ করতে
DryRunMode
ঠিক করুন। পরিবর্তে, এটি একটি একক পুনরাবৃত্তি চালায় এবং কিছু ক্যাপচার হয়েছে তা নিশ্চিত করার জন্য প্রোফাইলটি বের করে। ( I2f05d , খ/266403227 ) - পুরানো এপিআই স্তরে পাওয়ারস্ট্যাটস উপস্থিতি পরীক্ষা করার সময়
PowerMetric
ক্র্যাশটি ঠিক করুন। ( 5FAAF9 , খ/268253898 )
সংস্করণ 1.2.0-আলফা 09
11 জানুয়ারী, 2023
androidx.benchmark:benchmark-*:1.2.0-alpha09
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA09 এ এই কমিটস রয়েছে।
বাগ ফিক্স
- সমস্ত মানদণ্ড / বেসলাইন প্রোফাইল প্রজন্মকে অক্ষম করতে
androidx.benchmark.enabledRules
ইন্সট্রুমেন্টেশন আরগেNone
পাস করতে সক্ষম নয়। ( আই 3 ডি 7 এফডি , বি/258671856 ) - অ্যাপ্লিকেশন মডিউলগুলিতে
PerfettoTrace
ক্যাপচারটি ঠিক করুন (অর্থাত্ অ-স্ব-ইন্সট্রুমেন্টিং টেস্ট এপিকস) ( আই 12 সিএফসি ) - স্টুডিও আউটপুটে স্থির বেসলাইন প্রোফাইল এডিবি টান আর্গুমেন্ট অর্ডার ( আই 958 ডি 1 , বি/261781624 )
- আর্ম এমুলেটর এপিআই 33 এখন ম্যাক্রোব্যাঞ্চমার্ক চালানোর চেষ্টা করার সময় সঠিকভাবে স্বীকৃত এবং সতর্কতাটি সঠিকভাবে মুদ্রণ করবে। ( 69133 বি , বি/262209591 )
- ম্যাক্রোব্যাঞ্চমার্কে ব্যাটারি ছাড়াই ডিভাইসগুলিতে ব্যাটারি স্তর চেক করুন ( ফে 4114 , বি/232448937 )
সংস্করণ 1.2.0-আলফা 08
7 ডিসেম্বর, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA08 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- পরীক্ষার আচরণ এবং কর্মক্ষমতা পরিদর্শন করতে পরীক্ষার অংশ হিসাবে পারফেটো ট্রেসগুলি (সিস্টেম ট্রেস হিসাবেও পরিচিত) ক্যাপচার করতে পরীক্ষামূলক নতুন এপিআইএস
PerfettoTrace.record {}
এবংPerfettoTraceRule
যুক্ত করা হয়েছে। ( I3ba16 ) -
BaselineProfileRule
এখন প্যাকেজ উপসর্গগুলির তালিকার পরিবর্তে একটি ফিল্টার প্রেডিকেট গ্রহণ করে। এটি ফিল্টারিংয়ের উপর পরীক্ষাটি সম্পূর্ণ নিয়ন্ত্রণ দেয়। ( I93240 ) - একটি পরীক্ষামূলক এপিআই
BaselineProfileRule.collectStableBaselineProfile
যুক্ত করুন oll ( I923f3 ) -
BaselineProfileRule
ব্যবহার করে বেসলাইন প্রোফাইলগুলি তৈরি করার সময় একটি আউটপুট ফাইলের নাম উপসর্গ নির্দিষ্ট করার ক্ষমতা যুক্ত করুন। ( I7b59f , খ/260318655 )
বাগ ফিক্স
- ফাইল আউটপুট লেখার সুরক্ষা উন্নত করুন, যা আউটপুট ফাইলগুলিকে নিঃশব্দে লিখিত / সংযুক্ত না করা থেকে বিরত রাখতে হবে, বিশেষত এপিআই 21/22 এ। ( আইএফ 8 সি 44 , বি/227510293 )
- ফাইলটি সঠিকভাবে তৈরি করতে এবং স্থাপন করতে
simpleperf
ট্রেস আউটপুট ঠিক করুন। এটি আরও সাধারণভাবে সমস্যাগুলি ঠিক করা উচিত যেখানে কোনও ফাইল ব্যর্থভাবে গ্রেড দ্বারা টানা হয়। ( আই 12 এ 1 সি , বি/259424099 ) - প্রোফাইলইনস্টলার ত্রুটি বার্তা প্রিন্ট করা উন্নত করুন যখন প্রোফাইলইনস্টলার খুব পুরানো হয়। এটি এখন আপনাকে এপিআই 31 -এ বেসলাইন প্রোফাইলগুলি পরিমাপের জন্য প্রোফাইলইনস্টলার সংস্করণ (1.2.1) আপডেট করতে বলে, এটি সমর্থিত নয় বলে পরিবর্তে। ( আইএ 517 এফ , বি/253519888 )
- বেশ কয়েকটি শেল কমান্ড ব্যর্থতা ওনারার বার্তা প্রিন্ট করুন এপিআই <= 23, ব্যর্থ পারফেটো ক্যাপচার বাইনারি সেটআপ এবং ট্রেস ক্যাপচার ব্যর্থতা সহ ( আইবি 6 বি 87 , বি/258863685 )
- সময়ের সাথে সাথে পরিবর্তিত হওয়ার সাথে সাথে পরিবর্তনের সংখ্যা হ্রাস করতে স্বয়ংক্রিয়ভাবে উত্পন্ন প্রোফাইল বিধিগুলি বাছাই করুন (উত্স নিয়ন্ত্রণে প্রোফাইল নিয়মগুলি পরীক্ষা করার সময়)। ( Ie2509 )
- অ্যান্ড্রয়েড 13 (এপিআই 33) এর নীচে আনরোটেড বিল্ডগুলিতে স্থির ক্র্যাশটি
Expected no stderr from echo 3 > /proc/sys/vm/drop_caches
( আই 6 সি 245 , বি/259508183 ) থেকে কোনও স্টেরার আশা করা যায় না
জ্ঞাত সমস্যাগুলি - MacrobenchmarkScope.dropShaderCache()
প্রোফাইলইনস্টলার ম্যানিফেস্টে অনুপস্থিত সম্প্রচার রেজিস্ট্রিটির কারণে ক্র্যাশ হতে পারে, যা এখনও প্রকাশিত হয়নি। ( আই 5 সি 728 , বি/258619948 ) profileinstaller:1.3.0-alpha02
, আপনার অ্যাপ্লিকেশনটির (আপনার বেঞ্চমার্কের নয়) অ্যান্ড্রয়েডম্যানিফেস্ট.এক্সএমএলগুলিতে নিম্নলিখিতগুলি যুক্ত করুন:
<!-- workaround bug in profileinstaller 1.3.0-alpha02, remove when updating to alpha03+ -->
<receiver
android:name="androidx.profileinstaller.ProfileInstallReceiver"
android:permission="android.permission.DUMP"
android:exported="true">
<intent-filter>
<action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
</intent-filter>
</receiver>
সংস্করণ 1.2.0-Alpha07
9 নভেম্বর, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA07 এর মধ্যে এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- ম্যাক্রোব্যাঞ্চমার্কগুলিতে শক্তি এবং শক্তি পরিমাপের জন্য
PowerMetric
এপিআই যুক্ত করে। ( Ife601 , খ/220183779 ) - ফিক্সড
MacrobenchmarkScope.dropShaderCache()
আসলে শেডার ক্যাশে ফেলে দিতে। এটিStartupMode.COLD
বেঞ্চমার্কগুলি থেকে প্রায় 20 মিমি শব্দগুলি সরিয়ে দেয়, কারণ শেডারগুলি এখন ধারাবাহিকভাবে প্রতিটি পুনরাবৃত্তি সাফ করে দেয়। পূর্বে, ওয়ার্মআপ পুনরাবৃত্তি ব্যবহার করেPartial
সংকলনটি ভুলভাবে দ্রুত সংখ্যার প্রতিবেদন করবে, কারণ ওয়ার্মআপের সময় শেডার ক্যাচিং হওয়ার সম্ভাবনা বেশি ছিল। এই ফিক্সের জন্য হয় একটি মূলযুক্ত ডিভাইস, বাprofileinstaller:1.3.0-alpha02
।ProfileInstaller
লাইব্রেরির এপিআই পরিবর্তনের জন্য, দয়া করে প্রোফাইলইনস্টলার 1.30-আলফা 02 পৃষ্ঠাটি দেখুন। ( আইএ 5171 , বি/231455742 ) - একই লেবেল সহ একাধিক ট্রেস বিভাগে ব্যয় করা মোট সময়ের পরিমাপের অনুমতি দিয়ে
TraceSectionMode("label", Mode.Sum)
যুক্ত করা হয়েছে। উদাহরণস্বরূপ,TraceSectionMetric("inflate", Mode.Sum)
মুদ্রাস্ফীতিতে ব্যয় করা ম্যাক্রোব্যাঞ্চমার্কে মোট সময়ের জন্য একটি মেট্রিকinflateMs
প্রতিবেদন করবে। এছাড়াও এপিআই 29 প্রয়োজনীয়তা সরানো হয়েছে, কারণTraceSectionMetric
androidx.tracing.Trace
সাথে একসাথে কাজ করে যা লক্ষ্য অ্যাপের মধ্যেforceEnableAppTracing
ব্যবহার সহ এপিআই স্তরগুলিতে ফিরে আসে। ( আইডি 7 বি 68 , বি/231455742 )
বাগ ফিক্স
- সমস্ত আউটপুট/ত্রুটিগুলি বৈধ করে সমস্ত অভ্যন্তরীণ শেল কমান্ডের উন্নত সুরক্ষা। ( I5984d , খ/255402908 , বি/253094958 )
- বেসলাইন প্রোফাইল
adb pull
কমান্ডে ডিভাইসটি নির্দিষ্ট করুন, যাতে একাধিক ডিভাইস সংযুক্ত থাকলে (এক এমুলেটর পর্যন্ত) ( আই 6AC6C , বি/2233359380 ) যদি পুল কমান্ডটি কেবল অনুলিপি করা যায় - যদি ম্যাক্রোব্যাঞ্চমার্ক টেস্ট এপিকে স্ব-ইন্সট্রুমেন্টিং হিসাবে সেট আপ না করা হয় তবে ত্রুটি যুক্ত করুন। এই ত্রুটিটি লক্ষ্য অ্যাপের প্রক্রিয়াটির মধ্যে থেকে ম্যাক্রোব্যাঞ্চমার্কিংকে বাধা দেয়। প্রক্রিয়াধীন, ম্যাক্রোব্যাঞ্চ অ্যাপ্লিকেশনটি সংকলন/হত্যা/ঠান্ডা শুরু করতে বা তার নিজস্ব অনুমতিগুলি নিয়ন্ত্রণ করতে সক্ষম হবে না ( আই 4279 বি )
-
measureRepeated()
এ একটি সমস্যা স্থির করে যেখানেStartupMode.COLD
setupBlock
পরে লক্ষ্য প্রক্রিয়াটিকে হত্যা করবে না। এখন অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করাsetupBlock
অ্যাপ প্রক্রিয়াটি চলবে না এবং একটি অবৈধ ঠান্ডা শুরু পরিমাপ করবে না। ( I8ebb7 )
সংস্করণ 1.2.0-আলফা 06
24 অক্টোবর, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
BaselineProfileRule
আর অ্যান্ড্রয়েড 13 (এপিআই 33) এর মূলের প্রয়োজন হয় না এবং এটি আর পরীক্ষামূলক নয়। ( আই 0 এ 7 ডি , বি/250083467 , বি/253094958 )- এই পরিবর্তনটি কীভাবে কোনও অ্যাপ্লিকেশন থেকে প্রোফাইলগুলি আনরোটেড ডিভাইসে ডিস্কে ফ্লাশ করা হয় তাও সংশোধন করে তবে লক্ষ্য অ্যাপের প্রোফাইল ইনস্টলার নির্ভরতা আপডেট করার প্রয়োজন।
-
BaselineProfileRule
বাCompilationMode.Partial(warmupIterations)
একটি আনরোটেড ডিভাইসে ব্যবহার করতে, আপনাকে অবশ্যইandroidx.profileinstaller.profileinstaller:1.3.0-alpha01
ব্যবহার করতে আপনার লক্ষ্য অ্যাপটি আপডেট করতে হবে। এটি ডিস্কে প্রোফাইলটি সঠিকভাবে ফ্লাশ করতে সক্ষম করে, যাতে এটি সংকলন/নিষ্কাশন করা যায়।
বাগ ফিক্স
- এপিআই 33+ এ
SampledProfiling
ক্র্যাশ ফিক্স। ( I40743 , খ/236109374 )
সংস্করণ 1.2.0-আলফা 05
5 অক্টোবর, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA05 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
- স্টুডিও সিস্টেমে ফ্রেম ব্রেকডাউন ফিক্স করুন বেঞ্চমার্ক ক্যাপচারিত ট্রেসগুলির জন্য ভিউয়ার ট্রেস ভিউয়ার ( আই 3 এফ 3 এএ , বি/239677443 )
-
FrameTimingMetric
সঠিকFrameOverrun
29 এর পরিবর্তে এপিআই 31 প্রয়োজন হিসাবে তালিকাভুক্ত করতে ( i716dd , খ/220702554 ) -
BaselineProfileRule
পুনরাবৃত্তি সেট করুন এবং টার্গেট প্যাকেজটি ইনস্টল না করা থাকলে (ম্যাক্রোব্যাঞ্চমার্ক্রুলের জন্য ইতিমধ্যে সম্পন্ন হয়েছিল) স্পষ্টভাবে নিক্ষেপ করুন। ( আইসি 09 এ 3 , বি/227991471 )
সংস্করণ 1.2.0-আলফা 04
21শে সেপ্টেম্বর, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
দ্রুত স্থানীয় বিকাশের জন্য ম্যাক্রোব্যাঞ্চমার্কে (ইতিমধ্যে মাইক্রোতে উপলভ্য)
dryRunMode.enable
জন্য সমর্থন যুক্ত করুন এবং অ্যাপ্লিকেশন অটোমেশনকে বৈধকরণ (যেমন প্রেসবিমিট)। এটি 1 এর পুনরাবৃত্তিগুলিকে ওভাররাইড করে, সংকলন এড়িয়ে যায়, সমস্ত কনফিগারেশন ত্রুটি দমন করে এবং পরিমাপ অক্ষম করে J জসন ফাইল আউটপুট। ( আইবি 51 বি 4 , বি/175149857 )গ্রেড কমান্ড লাইনে:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.dryRunMode.enable=true
বিল্ড.গ্রাডলে:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.dryRunMode.enable', 'true' } }
বাগ ফিক্স
- ফিক্সড
StartupTimingMetric
জন্য আরMacrobenchmarkScope.startActivityAndWait()
এর মাধ্যমে আর পরিমাপের ক্রিয়াকলাপগুলি চালু করার প্রয়োজন নেই। এর অর্থ মেট্রিক ইজি বিজ্ঞপ্তি,Context.startActivity()
, ইন-অ্যাপ্লিকেশন ক্রিয়াকলাপ ভিত্তিক নেভিগেশন বা শেল কমান্ডগুলি থেকে লঞ্চগুলি বেছে নিতে পারে। ( আইএ 2 ডি 6 , বি/245414235 ) - বাগটি ঠিক করুন যেখানে
startActivityAndWait
ফ্রেম সনাক্তকরণের কঠোরতা হ্রাস করে এমুলেটরগুলিতে লঞ্চ সমাপ্তির জন্য অপেক্ষা করার সময়সীমা সময়আউট করবে। ( আইবিই 2 সি 6 , বি/244594339 , বি/228946895 )
সংস্করণ 1.2.0-Alpha03
7 সেপ্টেম্বর, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
-
BenchmarkState
স্বাধীনভাবে ব্যবহারের জন্য পরীক্ষামূলক এপিআই যুক্ত করা হয়েছে,BenchmarkRule
/JUnit4
থেকে পৃথক। ( আইডি 478 এফ , বি/228489614 )
বাগ ফিক্স
-
startActivityAndWait
জন্য লিনব্যাক ফ্যালব্যাক যুক্ত করা হয়েছে। ( 01 এড 77 , বি/242899915 )
সংস্করণ 1.2.0-আলফা 02
24 আগস্ট, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA02 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- বেসলাইন প্রোফাইল প্রজন্মের সময় ব্যতীত, এমনকি শিকড় থাকা অবস্থায়ও
MacrobenchmarkScope.killProcess()
এর জন্যam force stop
ডিফল্ট। এটি একটি al চ্ছিক বুলিয়ান আর্গুমেন্ট দিয়ে ওভাররাইড করা যেতে পারে। ( 02CCE9 , খ/241214097 )
বাগ ফিক্স
- সিস্টেম অ্যাপ্লিকেশনগুলির জন্য বেসলাইন প্রোফাইল প্রজন্মকে সমর্থন করুন। ( I900b8 , খ/241214097 )
- আনরোটেড ডিভাইসগুলিতে ওডিপিএম পাওয়ার মেট্রিকগুলির জন্য চেকিং সমর্থন করুন। ( A38C78 , বি/229623230 )
সংস্করণ 1.2.0-Alpha01
জুলাই 27, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- নতুন ট্রেসিং-পারফেটো-কমন উপাদানটি একটি অ্যাপ্লিকেশনটিতে পারফেটো এসডিকে ট্রেসিং সক্ষম করতে টুলিংকে অনুমতি দেয় যা এটি প্রকাশ করে ( i2cc7f )
ফিল্টারিং ম্যাক্রোব্যাঞ্চমার্ককে কেবল বেঞ্চমার্কগুলিতে চালিত করে বা কেবল বেসলাইন প্রোফাইল প্রজন্মের জন্য সক্ষম করতে
androidx.benchmark.enabledRules
ইন্সট্রুমেন্ট আর্গুমেন্ট যুক্ত করা হয়েছে। কেবলমাত্র এক ধরণের পরীক্ষা চালানোর জন্য 'ম্যাক্রোব্যাঞ্চমার্ক', বা 'বেসলাইনপ্রোফাইল' এ পাস করুন, যেমন কোনও এমুলেটরটিতে কেবলBaselineProfiles
তৈরি করার সময়। কমা-বিচ্ছিন্ন তালিকাও সমর্থিত। ( I756b7 , বি/230371561 )যেমন আপনার ম্যাক্রোব্যাঞ্চমার্কের বিল্ড.গ্র্যাডল:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile' } }
বা গ্রেডল কমান্ড লাইন থেকে:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
এপিআই পরিবর্তন
- বেঞ্চমার্কগুলিতে শক্তি এবং পাওয়ার কাজগুলি পরিমাপের জন্য নতুন
PowerMetric
যুক্ত করা হয়েছে। ( I9f39b , খ/220183779 ) - প্রোফাইল রিসেট এবং সংকলন এড়াতে একটি নতুন সংকলন মোড
CompilationMode.Ignore
যুক্ত করা হয়েছে। ( আইবিবিসিএফ 8 , বি/230453509 ) - প্যাকেজের নাম অনুসারে আউটপুট ফাইল ফিল্টার করতে
BaselineProfileRule#collectBaselineProfile
জন্য একটি নতুন প্যারামিটার যুক্ত করা হয়েছে ( আইএফ 7338 , বি/220146561 ) - পাওয়ার ড্রেন পরিমাপ করতে বিকাশকারীকে ডিভাইস স্রাব করতে সক্ষম করে। ( I6a6cb )
-
MacrobenchmarkScope
শেডার ক্যাশে সাফ করার ক্ষমতা যুক্ত করেছে। ( I32122 ) - বিকাশকারীকে মেট্রিক টাইপ এবং বিশদ পছন্দসই সাবসিস্টেম বিভাগগুলির প্রদর্শন কনফিগার করতে সক্ষম করে। ( I810c9 )
- পূর্বে একটি অসমর্থিত ডিভাইসে চালিত হলে একটি
UnsupportedOperationException
বেঞ্চমার্কে ফেলে দেওয়া হয়েছিল। এখন ইউওই কেবল তখনই ঘটে যদি মেট্রিকটি অসমর্থিত ডিভাইসে (যেমন:PowerMetric.configure
) ব্যবহার করা হয়। ( I5cf20 , খ/227229375 ) - ম্যাক্রোব্যাঞ্চমার্কগুলিতে প্রতিটি সিস্টেম বিভাগে মোট শক্তি এবং শক্তি পরিমাপের জন্য
TotalPowerMetric
এবংTotalEnergyMetric
যুক্ত করা হয়েছে। ( আই 3 বি 26 বি, বি/224557371 )
বাগ ফিক্স
- এমন একটি সমস্যা স্থির করা হয়েছে যেখানে সংকলিত পদ্ধতিগুলি আনরোটেড বিল্ডগুলিতে প্রতিটি ম্যাক্রোব্যাঞ্চমার্কের মধ্যে সঠিকভাবে পুনরায় সেট করা হচ্ছে না। দুর্ভাগ্যক্রমে এটির প্রতিটি পুনরাবৃত্তিটি পুনরায় ইনস্টল করা দরকার, যা প্রতিটি ম্যাক্রোব্যাঞ্চমার্কের জন্য অ্যাপ্লিকেশন ডেটা সাফ করবে। ( I31c74 , বি/230665435 )
- এপিআই 21/22 এ ট্রেস রেকর্ডিং ক্র্যাশ ফিক্স করুন ( আইএফ 7 এফডি 6 , বি/227509388 , বি/227510293 , বি/227512788 )
- স্টার্টআপ ম্যাক্রোব্যাঞ্চমার্কগুলিতে 'কোনও মেট্রিকগুলি পড়তে অক্ষম' ঠিক করার জন্য ওভারহল অ্যাক্টিভিটি লঞ্চ সমাপ্তি সনাক্তকরণ। ( আইএ 517 সি )
সংস্করণ 1.1.1
সংস্করণ 1.1.1
9 নভেম্বর, 2022
androidx.benchmark:benchmark-*:1.1.1
প্রকাশিত হয়েছে। সংস্করণ 1.1.1 এ এই কমিটস রয়েছে।
বাগ ফিক্স
- ফিক্সস
android.system.ErrnoException: open failed: EACCES
। এটি1.2.0-alpha01
থেকে একটি ফিক্সের চেরি-পিক। ( এওএসপি/2072249 )
সংস্করণ 1.1.0
সংস্করণ 1.1.0
15 জুন, 2022
androidx.benchmark:benchmark-*:1.1.0
প্রকাশিত হয়েছে। সংস্করণ 1.1.0 এ এই কমিটস রয়েছে।
- এই সংস্করণটি
androidx.benchmark:benchmark-*:1.1.0-rc03
এর অনুরূপ।
1.0.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন
জেটপ্যাক ম্যাক্রোব্যাঞ্চমার্কগুলির জন্য সমর্থন, যা আপনাকে স্টার্টআপ এবং স্ক্রোলিংয়ের মতো পুরো অ্যাপ্লিকেশন ইন্টারঅ্যাকশনগুলি পরিমাপ করতে দেয়, ট্রেসগুলি ক্যাপচার এবং ট্রেস বিভাগগুলি পরিমাপ করার ক্ষমতা সরবরাহ করে।
বেসলাইন প্রোফাইলগুলির জন্য সমর্থন
- বেসলাইন প্রোফাইলগুলির কার্যকারিতা পরিমাপ করতে
CompilationMode.Partial
। - প্রদত্ত সমালোচনামূলক ব্যবহারকারী ভ্রমণের জন্য বেসলাইন প্রোফাইলগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন করতে
@BaselineProfileRule
।
- বেসলাইন প্রোফাইলগুলির কার্যকারিতা পরিমাপ করতে
মাইক্রোব্যাঞ্চমার্ক রানের সময় বরাদ্দ মেট্রিক্স এবং প্রোফাইলিংয়ের জন্য সমর্থন।
সংস্করণ 1.1.0-আরসি 03
জুন 1, 2022
androidx.benchmark:benchmark-*:1.1.0-rc03
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আরসি 03 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
প্রতিটি বেঞ্চমার্ক পুনরাবৃত্তিতে লক্ষ্য প্যাকেজটি পুনরায় ইনস্টল করা এড়িয়ে চলুন। ( এওএসপি/2093027 , বি/231976084 )
pressHome()
থেকে300ms
বিলম্ব সরান। ( এওএসপি/2086030 , বি/231322975 )হুডের নীচে ব্যবহৃত শেল কমান্ডগুলি অনুকূল করে ম্যাক্রোব্যাঞ্চমার্ক পুনরাবৃত্তির গতি উন্নত করুন। ( এওএসপি/2086023 , বি/231323582 )
ম্যাক্রোব্যাঞ্চমার্কগুলির সাথে বেসলাইন প্রোফাইল তৈরি করার সময় পরিচালিত গ্রেডল ডিভাইসগুলির জন্য সমর্থন। ( এওএসপি/2062228 , বি/228926421 )
সংস্করণ 1.1.0-আরসি 02
11 মে, 2022
androidx.benchmark:benchmark-*:1.1.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আরসি 02 এ এই কমিটগুলি রয়েছে।
- নোট করুন যে এই রিলিজটিতে একটি আচরণ পরিবর্তন অন্তর্ভুক্ত রয়েছে, কারণ সঠিক পরিমাপ নিশ্চিত করার জন্য অ্যাপস এখন প্রতিটি বেঞ্চমার্কের মধ্যে পুরোপুরি পুনরায় ইনস্টল করা হয়েছে।
বাগ ফিক্স/আচরণ পরিবর্তন
এমন একটি সমস্যা স্থির করা হয়েছে যেখানে অ্যাপ্লিকেশন সংকলনটি ম্যাক্রোব্যাঞ্চমার্কগুলির মধ্যে সঠিকভাবে পুনরায় সেট করা হয়নি, এবং আনরোটেড বিল্ডগুলিতে মোটেও পুনরায় সেট করা হয়নি। এটি অনেকগুলি ক্ষেত্রে স্থির করে যেখানে একাধিক পরীক্ষা চালানোর ফলে
CompilationMode
পরিমাপের উপর খুব কম প্রভাব পড়বে না। এই সমস্যাটি কার্যকর করার জন্য, লক্ষ্য অ্যাপটি এখন প্রতিটি পরীক্ষার পদ্ধতি সম্পূর্ণরূপে পুনরায় ইনস্টল করছে, যা প্রতিটি ম্যাক্রোব্যাঞ্চমার্কের মধ্যে অ্যাপ্লিকেশন ডেটা সাফ করবে। ( I31c74 , বি/230665435 )যেহেতু এটি পরীক্ষার আগে অ্যাপ্লিকেশনগুলিকে রাষ্ট্র স্থাপন থেকে বাধা দেয়, এখন এই চারপাশে কাজ করতে সক্ষম করতে সংকলন / পুনঃস্থাপন এড়ানো সম্ভব। উদাহরণস্বরূপ আপনি শেল কমান্ড
cmd package compile -f -m speed <package>
এবং তারপরে ম্যাক্রোব্যাঞ্চমার্কের সংকলন পদক্ষেপটি বাইপাস করে লক্ষ্যটি সম্পূর্ণরূপে সংকলন করতে পারেন।যেমন আপনার ম্যাক্রোব্যাঞ্চমার্কের বিল্ড.গ্র্যাডল:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.compilation.enabled, 'false' } }
বা গ্রেডল কমান্ড লাইন থেকে:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.compilation.enabled=false
androidx.benchmark.enabledRules
ইন্সট্রুমেন্টেশন আর্গুমেন্ট যুক্ত করে ম্যাক্রোব্যাঞ্চমার্ক এবং বেসলাইন প্রোফাইল উত্পন্ন পরীক্ষাগুলির মধ্যে একটি মডিউল ভাগ করে নেওয়া সম্ভব করেছে। এমুলেটরটিতেBaselineProfiles
তৈরি করার সময় কেবল এক ধরণের পরীক্ষা চালানোর জন্য 'ম্যাক্রোব্যাঞ্চমার্ক', বা 'বেসলাইনপ্রোফাইল' পাস করুন। ( I756b7 , বি/230371561 )যেমন আপনার ম্যাক্রোব্যাঞ্চমার্কের বিল্ড.গ্র্যাডল:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile' } }
বা গ্রেডল কমান্ড লাইন থেকে:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
সংস্করণ 1.1.0-আরসি 01
20 এপ্রিল, 2022
androidx.benchmark:benchmark-*:1.1.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- অ্যান্ড্রয়েড স্টুডিওতে বেসলাইন প্রোফাইল আউটপুট লিঙ্কগুলি এখন একটি অনন্য ফাইলের নাম ব্যবহার করে। এইভাবে আউটপুট সর্বদা একটি
BaselineProfileRule
ব্যবহারের সর্বশেষ ফলাফলগুলি প্রতিফলিত করে। ( এওএসপি/2057008 , বি/228203086 )
সংস্করণ 1.1.0-BETA06
6 এপ্রিল, 2022
androidx.benchmark:benchmark-*:1.1.0-beta06
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA06 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
- এপিআই 21/22 এ ট্রেস রেকর্ডিং ক্রাশ ঠিক করুন ( if7fd6 , খ/227509388 )
- স্টার্টআপ ম্যাক্রোব্যাঞ্চমার্কগুলিতে 'কোনও মেট্রিকগুলি পড়তে অক্ষম' ঠিক করার জন্য ওভারহল অ্যাক্টিভিটি লঞ্চ সমাপ্তি সনাক্তকরণ। ( আইএ 517 সি )
- যখন
CompilationMode.None()
ব্যবহার করা হয় তখন ম্যাক্রোব্যাঞ্চমার্কগুলির জন্য স্টার্টআপ মেট্রিকগুলি ঠিক করুন। এই পরিবর্তনের আগে,CompilationMode.Partial()
Compilation.None()
। ( 611AC9 )।
সংস্করণ 1.1.0-BETA05
23 মার্চ, 2022
androidx.benchmark:benchmark-*:1.1.0-beta05
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA05 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
-
CompilationMode.None
ব্যবহার করার সময় প্রোফাইল ইনস্টলেশন এড়িয়ে যাওয়ার পরে প্যাকেজটি মেরে ফেলুন। ( এওএসপি/1991373 ) - এমন একটি সমস্যা স্থির করে যেখানে ম্যাক্রোব্যাঞ্চমার্কগুলি
StartupMode.COLD
ব্যবহার করার সময় স্টার্টআপ মেট্রিকগুলি সংগ্রহ করতে অক্ষম। ( এওএসপি/2012227 বি/218668335 )
সংস্করণ 1.1.0-BETA04
23 ফেব্রুয়ারি, 2022
androidx.benchmark:benchmark-*:1.1.0-beta04
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA04 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
অ্যান্ড্রয়েড 10 এ নিখোঁজ মেট্রিকগুলি ঠিক করুন এবং প্রক্রিয়া নামগুলি ট্রেসগুলিতে সঠিকভাবে ক্যাপচার না করা হচ্ছে এমন কারণে
NoSuchElementException
। ( আইবি 4 সি 17 , বি/218668335 )কিউ (এপিআই 29) এবং উচ্চতর উপর তাপীয় থ্রোটলিং সনাক্তকরণের জন্য
PowerManager
ব্যবহার করুন। এটি তাপীয় থ্রোটলিং সনাক্তকরণে মিথ্যা ইতিবাচকতার ফ্রিকোয়েন্সি উল্লেখযোগ্যভাবে হ্রাস করে (90 সেকেন্ডের কোলডাউনের পরে বেঞ্চমার্ক পুনরায় চেষ্টা করুন) এবং ব্যবহারকারী বিল্ডগুলিতে উল্লেখযোগ্যভাবে বেঞ্চমার্কগুলিকে গতি বাড়িয়ে তোলে। ঘড়িগুলি লক করা থাকলেও এটি থ্রোটল সনাক্তকরণও সরবরাহ করে (যদি তারা ডিভাইসের শারীরিক পরিবেশের জন্য খুব বেশি লক থাকে)। ( I9c027 , বি/217497678 , বি/131755853 )ফিল্টার সিম্পলপার্ফ কেবলমাত্র পরিদর্শনকে সহজ করার জন্য
measureRepeated
থ্রেডে প্রোফাইলের নমুনা তৈরি করেছেন ( আইসি 3 ই 12 , বি/217501939 )মাল্টি-প্রসেস অ্যাপ্লিকেশনগুলিতে নামকরণ করা ইউআই সাবপ্রসেসগুলি থেকে মেট্রিকগুলি সমর্থন করুন ( আইস 6 সি 0 , বি/215988434 )
অ্যান্ড্রয়েড 9 (এসডিকে 28) টার্গেট করতে বেসলাইন প্রোফাইলের বিধিগুলি ফিল্টার করুন। এওএসপি/1980331 বি/216508418
Compilation.None()
ব্যবহার করার সময় প্রোফাইল ইনস্টলেশন এড়িয়ে যান। অতিরিক্তভাবে, অ্যাপ্লিকেশনটি যখনandroidx.profileinstaller
এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইনের একটি পুরানো সংস্করণ ব্যবহার করছে তখন সতর্কতার প্রতিবেদন করুন। এওএসপি/1977029
সংস্করণ 1.1.0-BETA03
ফেব্রুয়ারী 9, 2022
androidx.benchmark:benchmark-*:1.1.0-beta03
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA03 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- অডিও আন্ডাররানগুলি সনাক্তকরণের অনুমতি দেওয়ার জন্য পরীক্ষামূলক পতাকার অধীনে ম্যাক্রোব্যাঞ্চমার্ক লাইব্রেরিতে
AudioUnderrunMetric
যুক্ত করা হয়েছে ( আইবি 5972 ) BaselineProfileRule
আর কোনওsetup
ব্লক গ্রহণ করে না কারণ এটিprofileBlock
মতো একই কাজ করে। ( আইসি 7 ডিএফই , বি/215536447 )যেমন
@Test fun collectBaselineProfile() { baselineRule.collectBaselineProfile( packageName = PACKAGE_NAME, setupBlock = { startActivityAndWait() }, profileBlock = { // ... } ) }
@Test fun collectBaselineProfile() { baselineRule.collectBaselineProfile( packageName = PACKAGE_NAME, profileBlock = { startActivityAndWait() // ... } ) }
বাগ ফিক্স
- স্থির সমস্যা যেখানে স্টুডিও আউটপুট ( i5ae4d , b/214917025 ) লিঙ্কযুক্ত অবস্থায় মাইক্রোব্যাঞ্চ প্রোফাইলার ট্রেসগুলি পরবর্তী রানগুলিতে আপডেট হতে ব্যর্থ হবে
- এপিআই 23 এ সংকলন শেল কমান্ডগুলি প্রতিরোধ করুন ( আইস 380 )
-
FrameCpuTime
নামকরণ করা হয়েছে ->FrameDurationCpu
,FrameUiTime
->FrameDurationUi
এইগুলি স্পষ্ট করে তুলতে এই সময়সীমা, টাইমস্ট্যাম্পগুলি নয় এবং উপসর্গগুলির সাথে মেলে। ( I0eba3 , খ/216337830 )
সংস্করণ 1.1.0-BETA02
জানুয়ারী 26, 2022
androidx.benchmark:benchmark-*:1.1.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA02 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
- মাইক্রোব্যাঞ্চমার্ক স্ট্যাক স্যাম্পলিং / পদ্ধতি ট্রেসিং প্রোফাইল ফলাফলগুলি এখন অন্যান্য প্রোফাইলিং আউটপুটগুলির অনুরূপ স্টুডিও আউটপুটে লিঙ্কযুক্ত এবং বরাদ্দ মেট্রিককে দমন করে না। ( আইডিসিবি 65 , বি/214440748 , বি/214253245 )
- বেসলাইনপ্রোফিলারুল এখন উত্পন্ন বেসলাইনপ্রোফাইল পাঠ্য ফাইলটি টানানোর জন্য লগক্যাট এবং স্টুডিও আউটপুটে
adb pull
কমান্ড প্রিন্ট করে। ( F08811 )
সংস্করণ 1.1.0-BETA01
জানুয়ারী 12, 2022
androidx.benchmark:benchmark-*:1.1.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA01 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
- ফিক্সগুলি প্রোফাইলার যুক্তি উপেক্ষা করা সক্ষম করে। ( I37373 , বি/210619998 )
- অবহেলিত
CompliationModes
সরানো হয়েছে ( i98186 , বি/213467659 ) -
CompilationMode.Partial
বেসলাইন প্রোফাইল আরগ স্যুইচড। স্পষ্টতার জন্য এনাম থেকে পার্টিয়াল। ( ID67EA )
সংস্করণ 1.1.0-আলফা 13
15 ডিসেম্বর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha13
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আলফা 13 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- অ্যান্ড্রয়েড কিউ (এপিআই 29+) এ মাইক্রোব্যাঞ্চ আউটপুটে লো-ওভারহেড সিস্টেম ট্রেসিং যুক্ত করুন। মনে রাখবেন যে এটি বর্তমানে কাস্টম ট্রেসিং (
android.os.Trace
বাandroidx.tracing
jetpack এপিআই দ্বারা) ক্যাপচার করে না ফলাফলগুলি প্রভাবিত করতে এড়াতে। এই ট্রেসিংটি অস্থিরতা নির্ণয়ের ক্ষেত্রে কার্যকর হওয়া উচিত, বিশেষত বেঞ্চমার্কের বাইরের উত্সগুলি থেকে। ( I298Be , খ/205636583 , বি/145598917 ) -
CompilationModes
তিনটি শ্রেণিতে পরিষ্কার করুন - পূর্ণ, কোনওটিই নয়, আংশিক। পূর্বে তাদের সংকলন আর্গুমেন্টগুলি (যা আমরা এখন বাস্তবায়নের বিশদ হিসাবে বিবেচনা করি) এবং বৈশিষ্ট্যগুলির নামানুসারে নামকরণ করা হয়েছিল। এটি প্ল্যাটফর্ম সংস্করণগুলিতে ট্রেড অফস, সম্ভাব্য সংমিশ্রণ এবং আচরণকে আরও পরিষ্কার করে তোলে। ( আই 3 ডি 7 বিএফ , বি/207132597 ) - সেটআপ এবং পরিমাপ এখন সর্বদা জোড়ায় থাকে। আপনি এখন প্যাকেজের নাম এবং পুনরাবৃত্তিটি জিজ্ঞাসা করতে পারেন (যদিও নির্দিষ্ট ওয়ার্মআপ পরিস্থিতিতে পুনরাবৃত্তিটি
null
হতে পারে)। ( আইডি 3 বি 68 , বি/208357448 , বি/208369635 )
বাগ ফিক্স
- স্থির
CompilationMode.Speed
ভুলভাবেNone
হিসাবে বিবেচনা করা হয়নি ( i01137 )
সংস্করণ 1.1.0-আলফা 12
17 নভেম্বর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha12
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আলফা 12 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- কাস্টম ট্রেস-ভিত্তিক সময় পরিমাপের জন্য পরীক্ষামূলক ট্রেসসেকশনমেট্রিক যুক্ত করুন। ( I99db1 , খ/204572664 )
বাগ ফিক্স
- ইউআই পরীক্ষা করা যেতে পারে তা নিশ্চিত করার জন্য প্রতিটি পুনরাবৃত্তির ডিভাইস জাগিয়ে নিন - লকস্ক্রিনটি অক্ষম করা দরকার। ( আইবিএফএ 28 , বি/180963442 )
- এমুলেটর এবং অ-মূলযুক্ত ডিভাইসগুলিতে স্ট্যাকস্যাম্পলিং প্রোফাইলিং মোডে একাধিক ক্র্যাশগুলি স্থির করে ( আইসিডিবিডিএ , বি/202719335 )
- প্রতিটি পুনরাবৃত্তির শেষে 0.5 সেকেন্ডের ঘুম সরানো হয়েছে - আপনি যদি এই পরিবর্তনের সাথে অনুপস্থিত মেট্রিকগুলি দেখতে পান তবে দয়া করে একটি বাগ ফাইল করুন। ( Iff6aa )
- ড্রপড ডেটার সম্ভাবনা হ্রাস করুন এবং ট্রেসিং থেকে কম মেমরি ওভারহেড ( আইডি 2544 , বি/199324831 , বি/204448861 )
- কমপ্যাক্ট সময়সূচী স্টোরেজ ফর্ম্যাটে স্যুইচ করে ট্রেসের আকার ~ 40% হ্রাস করুন। ( আইডি 5 এফবি 6 , বি/199324831 )
- রেন্ডারথ্রেডের শেষে সর্বদা শেষ হওয়ার জন্য স্টার্টআপ মেট্রিকগুলির আপডেট হওয়া বাস্তবায়ন। এটি প্ল্যাটফর্ম সংস্করণগুলিতে আরও অবিচ্ছিন্ন এবং অ্যাপ্লিকেশন পরিমাপের আরও ঘনিষ্ঠভাবে মানচিত্র হবে। ( আইসি 6 বি 55 )
সংস্করণ 1.1.0-আলফা 11
3 নভেম্বর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha11
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আলফা 11 এ এই কমিটস রয়েছে।
এপিআই পরিবর্তন
- ম্যাক্রোব্যাঞ্চমার্কের এখন
23
minSdkVersion
রয়েছে। ( আইএফ 2655 ) - একটি নতুন পরীক্ষামূলক
BaselineProfileRule
যুক্ত করে যা অ্যাপের সমালোচনামূলক ব্যবহারকারী ভ্রমণের জন্য বেসলাইন প্রোফাইল তৈরি করতে সক্ষম। অনুসরণ করার জন্য বিশদ ডকুমেন্টেশন। ( আইবিএফএফএ , বি/203692160 ) - পরিমাপক ইন্টারফেস বৈকল্পিক অপসারণ করে, যা জাভা কলারদের জন্য যুক্ত করা হয়েছিল, কারণ এটি পদ্ধতিটি সম্পূর্ণ/সমাধানে অস্পষ্টতার কারণ হয়ে দাঁড়িয়েছে। জাভা কলারদের আবারও ইউনিট ফিরিয়ে দিতে হবে ear যদি এটি কোনও অসুবিধা হয় তবে দয়া করে একটি বাগ ফাইল করুন, আমরা ভবিষ্যতের সংস্করণে এটি পুনর্বিবেচনা করতে পারি। ( আইএফবি 23 ই , বি/204331495 )
সংস্করণ 1.1.0-আলফা 10
27 অক্টোবর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আলফা 10 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- ব্যাকপোর্ট স্টার্টপুপটিমিংমেট্রিক এপিআই 23 এ ফিরে কাজ করার জন্য। এই নতুন বাস্তবায়নটি আরও ভাল হ্যান্ডেলগুলি আরও ভাল হ্যান্ডেলগুলি প্রতিবেদন করা () এর সাথে সম্পর্কিত সামগ্রীটি রেন্ডার না হওয়া পর্যন্ত অপেক্ষা করতে আরও ভাল পরিচালনা করে। ( If3ac9 , খ/183129298 )
- জাভা কলারদের জন্য একাধিক ম্যাক্রোব্যাঞ্চমার্কস্কোপ পদ্ধতিতে জেভিএমওভারলোড যুক্ত করা হয়েছে। ( I644fe , খ/184546459 )
- জাভা ভাষায় আইডিয়োম্যাটিক ব্যবহারের জন্য বিকল্প ম্যাক্রোব্যাঞ্চমার্ক্রুল.মিয়াসুরেরপিটেড ফাংশন সরবরাহ করুন যা
Consumer<MacrobenchmarkScope>
ব্যবহার করে। ( If74ab , খ/184546459 )
বাগ ফিক্স
- ট্রেসগুলি পর্যাপ্ত পরিমাণে শুরু না করে এবং মেট্রিক ডেটা অনুপস্থিতের জন্য ঠিক করুন। এটি "বেঞ্চমার্কের সময় কোনও মেট্রিকগুলি পড়তে অক্ষম" ব্যতিক্রমগুলি লাইব্রেরির দ্বারা সৃষ্ট ব্যতিক্রমগুলি ঠিক করবে বলে আশা করা হচ্ছে। ( I6dfcb , খ/193827052 , বি/200302931 )
- ফ্রেমেনেটিভসল্যাককে এর অর্থটি স্পষ্ট করার জন্য ফ্রেমওভাররুনে নামকরণ করা হয়েছে - ফ্রেমটি তার সময়ের বাজেটে কতটা এগিয়ে গেছে। ( I6c2aa , খ/203008701 )
সংস্করণ 1.1.0-Alpha09
13 অক্টোবর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha09
is released. Version 1.1.0-alpha09 contains these commits.
বাগ ফিক্স
- Support dropping Kernel page cache without root on API 31/S+, which will increase accuracy of StartupMode.COLD launches. ( Iecfdb , b/200160030 )
Version 1.1.0-alpha08
29 সেপ্টেম্বর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha08
is released. Version 1.1.0-alpha08 contains these commits.
এপিআই পরিবর্তন
- Enable scrolling macrobenchmarks to run back to API 23 ( If39c2 , b/183129298 )
- Add new type of sampled metric to UI and JSON output, focused on percentiles of multiple samples per iteration. ( I56247 , b/199940612 )
- Switch to floating point metrics throughout the benchmark libraries (truncated in the Studio UI). ( I69249 , b/197008210 )
Version 1.1.0-alpha07
1 সেপ্টেম্বর, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha07
is released. Version 1.1.0-alpha07 contains these commits.
এপিআই পরিবর্তন
- Raised min API to 21 to reflect the intended lowest API level to be supported in the future. Current min API supported continues to be conveyed via RequiredApi(), and is currently 29 ( I440d6 , b/183129298 )
বাগ ফিক্স
- Fixes
ProfileInstaller
to make it easier for apps using baseline profiles to run MacroBenchmarks usingCompilationMode.BaselineProfile
. ( I42657 , b/196074999 ) NOTE: requires also updating toandroidx.profileinstaller:profileinstaller:1.1.0-alpha04
or greater. -
StartupMode.COLD
+CompilationMode.None
benchmarks are now more stable. ( I770cd , b/196074999 )
Version 1.1.0-alpha06
18 আগস্ট, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha06
is released. Version 1.1.0-alpha06 contains these commits.
এপিআই পরিবর্তন
- Added
androidx.benchmark.iterations
instrumentation argument to allow manual overriding of iteration count when testing/profiling locally. ( 6188be , b/194137879 )
বাগ ফিক্স
- Switched to Simpleperf as default sampling profiler on API 29+. ( Ic4b34 , b/158303822 )
পরিচিত সমস্যা
-
CompilationMode.BaselineProfile
is a work in progress. Avoid using it to determine how good a profile is for now.
Version 1.1.0-alpha05
4 আগস্ট, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha05
is released. Version 1.1.0-alpha05 contains these commits.
1.1.0-alpha04
was cancelled before release due to a sporatic crash. b/193827052
এপিআই পরিবর্তন
- Switched startActivityAndWait to invoke launch via
am start
, which reduces the time of each measurement iteration by approximately 5 seconds, at the cost of no longer supporting intent parcelables. ( I5a6f5 , b/192009149
বাগ ফিক্স
- Reduce aggressiveness of thermal throttle detection, and recompute baseline if throttles are detected frequently. ( I7327b )
- Fixes FrameTimingMetric to work on Android S beta ( Ib60cc , b/193260119 )
- Use an
EmptyActivity
to bring the target app out of a force-stopped state to better supportCompilationMode.BaselineProfile
. ( Id7cac , b/192084204 ) - Changed trace file extension to
.perfetto-trace
to match platform standard. ( I4c236 , b/174663039 ) - StartupTimingMetric now outputs the "fullyDrawnMs" metric to measure time until your application has completed rendering. To define this metric for your app, call Activity.reportFullyDrawn when your initial content is ready, such as when your initial list items are loaded from DB or network. (reportFullyDrawn method available without build version checks on ComponentActivity). Note that your test must run long enough to capture the metric (startActivityAndWait doesn't wait for reportFullyDrawn). ( If1141 , b/179176560 )
- Reduce cost of appending Ui metadata to traces by 50+ ms ( Ic8390 , b/193923003 )
- Drastically increased polling frequency when stopping tracing, which can reduce eg startup benchmark runtime by 30+% ( Idfbc1 , b/193723768 )
Version 1.1.0-alpha03
16 জুন, 2021
androidx.benchmark:benchmark-*:1.1.0-alpha03
is released. Version 1.1.0-alpha03 contains these commits.
নতুন বৈশিষ্ট্য
- Added a new
CompilationMode.BaselineProfile
to support profiles installed using the Jetpack ProfileInstaller library . ( aosp/1720930 )
বাগ ফিক্স
The sample Gradle code for suppressing benchmark errors has been updated to use a non-deprecated API with a syntax that also supports .gradle.kts users.
যেমন,
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,LOW-BATTERY"
Version 1.1.0-alpha02
18 মে, 2021
Benchmark version 1.1.0-alpha02 brings a big component to benchmarking - Macrobenchmark. In addition to benchmark allowing you to measure CPU loops, macrobenchmark allows you to measure whole-app interactions like startup and scrolling, and capture traces. For more information see the library documentation .
androidx.benchmark:benchmark-*:1.1.0-alpha02
is released. Version 1.1.0-alpha02 contains these commits.
নতুন বৈশিষ্ট্য
Macrobenchmark artifacts added ( androidx.benchmark:benchmark-macro-junit4
and androidx.benchmark:benchmark-macro
)
- Capture startup, scrolling/animation performance metrics from your app, locally or in CI
- Capture and inspect traces from within Android Studio
বাগ ফিক্স
- Workaround shell permissions issue with output directory on Android 12 (Note - may require updating Android Gradle Plugin to 7.0.0 canary and Android Studio to Arctic Fox (2020.3.1), to continue capturing output files on affected devices). ( Icb039 )
- Support configuration caching in BenchmarkPlugin ( 6be1c1 , b/159804788 )
- Simplified file output - on by default, in a directory that doesn't require
requestLegacyExternalStorage=true
( 8b5a4d , b/172376362 ) - Fixes library printing logcat warnings about not finding JIT thread on platform versions where it is not present. ( I9cc63 , b/161847393 )
- Fix for reading device max frequency. ( I55c7a )
Version 1.1.0-alpha01
জুন 10, 2020
androidx.benchmark:benchmark-common:1.1.0-alpha01
, androidx.benchmark:benchmark-gradle-plugin:1.1.0-alpha01
, and androidx.benchmark:benchmark-junit4:1.1.0-alpha01
are released. Version 1.1.0-alpha01 contains these commits.
New Features of 1.1
- Allocation Metric - Benchmarks now run an additional phase after warmup and timing, capturing allocation counts. Allocations can cause performance problems on older versions of the platform (140ns in O became 8ns in M - measured on Nexus5X, with locked clocks). This metric is displayed in Android Studio console output, as well as in the
- Profiling support - You can now capture profiling data for a benchmark run, to inspect why your code may be running slowly. Benchmark supports capturing either method tracing, or method sampling from ART. These files can be inspected with the Profiler inside Android Studio using File > Open .
- The Benchmark Gradle plugin now provides defaults for simpler setup:
-
testBuildType
is set to release by default, to avoid using dependencies with code coverage built-in. The release buildType is also configured as the default buildType, which allows Android Studio to automatically select the correct build variant when opening a project for the first time. ( b/138808399 ) -
signingConfig.debug
is used as the default signing config ( b/153583269 )
-
** Bug Fixes **
- Significantly reduced the warmup transition overhead, where the first measurement for each benchmark was artificially higher than others. This issue was more pronounced in very small benchmarks (1 microsecond or less). ( b/142058671 )
- Fixed
InstrumentationResultParser
error printed for each benchmark when running from command line. ( I64988 , b/154248456 )
পরিচিত সমস্যা
- Command line, gradle invocations of Benchmark do not print out results directly. You can work around this by either running through Studio, or parsing the JSON output file for results.
- Benchmark reporting fails to pull the report from devices that have an app installed with an applicationId ending with either “android” or “download” (case insensitive). Users hitting this issue should upgrade the Android Gradle Plugin to 4.2-alpha01 or later.
সংস্করণ 1.0.0
Benchmark Version 1.0.0
নভেম্বর 20, 2019
androidx.benchmark:benchmark-common:1.0.0
, androidx.benchmark:benchmark-gradle-plugin:1.0.0
, and androidx.benchmark:benchmark-junit4:1.0.0
are released with no changes from 1.0.0-rc01. Version 1.0.0 contains these commits .
Major features of 1.0.0
The Benchmark library allows you to write performance benchmarks of app code and get results quickly.
It prevents build and runtime configuration issues and stabilizes device performance to ensure that measurements are accurate and consistent. Run the benchmarks directly in Android Studio , or in Continuous Integration to observe code performance over time, and to prevent regressions.
প্রধান বৈশিষ্ট্য অন্তর্ভুক্ত:
- Clock stabilization
- Automatic thread prioritization
- Support for UI performance testing, such as in the RecyclerView Sample
- JIT-aware warmup and looping
- JSON benchmark output for post-processing
Version 1.0.0-rc01
23 অক্টোবর, 2019
androidx.benchmark:benchmark-common:1.0.0-rc01
, androidx.benchmark:benchmark-gradle-plugin:1.0.0-rc01
, and androidx.benchmark:benchmark-junit4:1.0.0-rc01
are released. Version 1.0.0-rc01 contains these commits .
নতুন বৈশিষ্ট্য
- Added systrace tracing to benchmarks
বাগ ফিক্স
- Fixed metric instability issue where JIT wouldn't finish before warm up due to deprioritization ( b/140773023 )
- Unified JSON output directory across Android Gradle Plugin 3.5 and 3.6
Version 1.0.0-beta01
9 অক্টোবর, 2019
androidx.benchmark:benchmark-common:1.0.0-beta01
, androidx.benchmark:benchmark-gradle-plugin:1.0.0-beta01
, and androidx.benchmark:benchmark-junit4:1.0.0-beta01
are released. Version 1.0.0-beta01 contains these commits .
নতুন বৈশিষ্ট্য
- Run garbage collection before each warmup to reduce memory pressure from one benchmark to leak to the next ( b/140895105 )
বাগ ফিক্স
- Added
androidx.annotation:android-experimental-lint
dependency, so that Java code will correctly produce lint errors when experimental API is not used, similar to what is provided by the Kotlin experimental annotation for Kotlin callers. - Now correctly detects usage of
additionalTestOutputDir
instrumentation argument for output in Android Gradle Plugin 3.6, to know when AGP will handle data copy. - Fix undetected clock frequency in JSON to correctly print
-1
( b/141945670 ).
Version 1.0.0-alpha06
সেপ্টেম্বর 18, 2019
androidx.benchmark:benchmark-common:1.0.0-alpha06
, androidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha06
, and androidx.benchmark:benchmark-junit4:1.0.0-alpha06
are released. Version 1.0.0-alpha06 contains these commits .
নতুন বৈশিষ্ট্য
- Added a check for incorrectly using the old package for the test runner, which now provides a more-helpful error message
এপিআই পরিবর্তন
- The experimental annotation
ExperimentalAnnotationReport
is now correctly public. Usage of the experimental BenchmarkState#report API now requires this annotation
Version 1.0.0-alpha05
5 সেপ্টেম্বর, 2019
androidx.benchmark:benchmark-common:1.0.0-alpha05
, androidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha05
, and androidx.benchmark:benchmark-junit4:1.0.0-alpha05
are released. The commits included in this version can be found here .
এপিআই পরিবর্তন
-
BenchmarkState.reportData
API is now marked experimental
বাগ ফিক্স
- Fix for the clock-locking script, which would fail on devices that were either missing the
cut
orexpr
shell utilities. - Fixed an issue with
./gradlew lockClocks
task that would hang on devices that were rooted with an older version of the su utility, which did not support the-c
flag.
Version 1.0.0-alpha04
7 আগস্ট, 2019
androidx.benchmark:benchmark-common:1.0.0-alpha04
, androidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha04
, and androidx.benchmark:benchmark-junit4:1.0.0-alpha04
are released. The commits included in this version can be found here .
New documentation has also been added for how to use the Benchmark library without Gradle, both for usage with different build systems (such as Bazel or Buck), and when running in CI. For more information, see Build benchmarks without Gradle and Run benchmarks in Continuous Integration .
নতুন বৈশিষ্ট্য
- Gradle plugin
- Now automatically disables test coverage, and sets the
AndroidBenchmarkRunner
by default ( b/138374050 ) - Added support for new AGP-based data copy, when running benchmarks and when using AGP 3.6+
- Now automatically disables test coverage, and sets the
- JSON format additions
- Output total benchmark test run time ( b/133147694 )
-
@Parameterized
benchmarks that use a name string (for example@Parameters(name = "size={0},depth={1}")
) now output parameter names and values per benchmark in the JSON output ( b/132578772 )
- Dry Run mode ( b/138785848 )
- Added a "dry run" mode for running each benchmark loop only once, to check for errors/crashes without capturing measurements. This can be useful eg for, for example, quickly running benchmarks in presubmit to check that they're not broken.
এপিআই পরিবর্তন
- Module structure has changed, splitting the library ( b/138451391 )
-
benchmark:benchmark-junit4
contains classes with JUnit dependency:AndroidBenchmarkRunner
, andBenchmarkRule
, both of which have moved into theandroidx.benchmark.junit4
package -
benchmark:benchmark-common
contains the rest of the logic, including the BenchmarkState API - This split will allow the library to support benchmarking without JUnit4 APIs in the future
-
- Configuration warnings are now treated as errors, and will crash the test ( b/137653596 )
- This is done to further encourage accurate measurements, especially in CI
- These errors can be reduced back to warnings with an instrumentation argument. For example:
-e androidx.benchmark.suppressErrors "DEBUGGABLE,LOW_BATTERY"
বাগ ফিক্স
- Errors when writing to external storage on Q devices provide more-descriptive messages, with suggestions of how to resolve the issue
- Screens are automatically turned on during benchmark runs, instead of failing when the screen is off
বাহ্যিক অবদান
- Thanks to Sergey Zakharov for contributing JSON output improvements and the fix for screen off issues!
Version 1.0.0-alpha03
জুলাই 2, 2019
androidx.benchmark:benchmark:1.0.0-alpha03
and androidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha03
are released. The commits included in this version can be found here .
নতুন বৈশিষ্ট্য
- Expose sleep duration due to thermal throttling per benchmark in the full JSON report
বাগ ফিক্স
- The Gradle plugin should no longer be required to be applied after Android plugins and the Android block
- Adds support for benchmark reports on Android 10 devices using scoped storage
Version 1.0.0-alpha02
জুন 6, 2019
androidx.benchmark:1.0.0-alpha02
and androidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha02
are released. The commits included in this version can be found here .
Note that we are treating the JSON schema as an API. We plan to follow the same stability constraints as other APIs: stable (with very rare exceptions) once in beta, and fixed in final release, with only additions in minor releases and changes/removals in major releases.
এপিআই পরিবর্তন
Overhauled JSON schema. Further changes to the JSON schema are likely to be limited to additions:
- Reorganized the result object structure to support additional metric groups in the future ( b/132713021 )
- Added test run context information, such as device and build info and whether clocks are locked, to the top-level object ( b/132711920 )
- Time metric names now have 'ns' in their name ( b/132714527 )
- Additional stats added per reported metric (maximum, median, minimum), and removed simplified 'nanos' summary stat ( b/132713851 )
Removed XML output ( b/132714414 )
Thermal throttle detection removed from
BenchmarkState.reportData
API ( b/132887006 )
বাগ ফিক্স
- Fixed
./gradlew lockClocks
not sticking on some recent OS devices ( b/133424037 ) - Throttling detection disabled for emulator ( b/132880807 )
Version 1.0.0-alpha01
7 মে, 2019
androidx.benchmark:benchmark:1.0.0-alpha01
is released. The commits included in this version are available here .