กำหนดค่าลักษณะการทำงานของไลบรารีด้วยเครื่องมือต่อไปนี้
อาร์กิวเมนต์ คุณจะเพิ่มรายการเหล่านี้ลงในการกำหนดค่า Gradle หรือนำไปใช้ก็ได้
โดยตรงเมื่อเรียกใช้การวัดคุมจากบรรทัดคำสั่ง ในการตั้งค่า
อาร์กิวเมนต์สำหรับ Android Studio และการทดสอบบรรทัดคำสั่งทั้งหมด ให้เพิ่มอาร์กิวเมนต์ลงใน
testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
นอกจากนี้ คุณยังสามารถตั้งค่าอาร์กิวเมนต์การวัดคุมเมื่อเรียกใช้การเปรียบเทียบจาก Android Studio หากต้องการเปลี่ยนอาร์กิวเมนต์ ให้ทำดังนี้
- แก้ไขการกำหนดค่าการเรียกใช้โดยคลิกแก้ไข จากนั้นคลิก การกำหนดค่า
- แก้ไขอาร์กิวเมนต์การใช้เครื่องมือโดยคลิก เพิ่มเติมโดย อาร์กิวเมนต์เครื่องมือ
- เพิ่มอาร์กิวเมนต์การใช้เครื่องมือที่จำเป็นโดยคลิก เพิ่มในส่วนการวัดคุม พารามิเตอร์เพิ่มเติม
หากต้องการโทรจากบรรทัดคำสั่งโดยตรง ให้ใช้ -P
android.testInstrumentationRunnerArguments.[name of the argument]
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
androidx.benchmark.compilation.enabled
ให้คุณปิดใช้การคอมไพล์ระหว่างการทำซ้ำแต่ละครั้งของการเปรียบเทียบ โดย
แอปพลิเคชันเป้าหมายจะมีการติดตั้งใหม่ และคอมไพล์ซ้ำระหว่าง
ตามการเปรียบเทียบ CompilationMode
ที่ส่งไปยัง
measureRepeated
การปิดใช้งานทำให้คุณสามารถข้าม
ติดตั้งอีกครั้งและคอมไพล์หากต้องการคอมไพล์เป้าหมายโดยสมบูรณ์ เป็นต้น
อีกครั้งหนึ่งก่อนที่จะเรียกใช้ชุดทดสอบ และทำการเปรียบเทียบทั้งหมดกับชุดทดสอบดังกล่าว
เป้าหมายที่คอมไพล์แล้ว
- ประเภทอาร์กิวเมนต์: บูลีน
- มีค่าเริ่มต้นเป็น:
true
androidx.benchmark.dryRunMode.enable
ให้คุณเรียกใช้การเปรียบเทียบในลูปเดียวเพื่อยืนยันว่าทำงานได้อย่างถูกต้อง คุณสามารถใช้ฟีเจอร์นี้กับการทดสอบปกติในการยืนยันได้
- ประเภทอาร์กิวเมนต์: บูลีน
- มีค่าเริ่มต้นเป็น:
false
androidx.benchmark.enabledRules
อนุญาตให้การกรองทำงานเพียงประเภทเดียว ซึ่งได้แก่ การสร้างโปรไฟล์พื้นฐาน หรือ การทดสอบการเปรียบเทียบมาโคร นอกจากนี้ ระบบยังรองรับรายการที่คั่นด้วยคอมมาด้วย
- ประเภทอาร์กิวเมนต์: สตริง
- ตัวเลือกที่พร้อมใช้งานมีดังนี้
Macrobenchmark
BaselineProfile
- มีค่าเริ่มต้นเป็น: ไม่ระบุ
androidx.benchmark.junit4.SideEffectRunListener
คุณอาจได้รับผลลัพธ์การเปรียบเทียบที่ไม่สอดคล้องกันหากมีการทำงานเบื้องหลังที่ไม่เกี่ยวข้อง ดำเนินการในขณะที่การเปรียบเทียบทำงานอยู่
หากต้องการปิดการทำงานในเบื้องหลังระหว่างการเปรียบเทียบ ให้ตั้งค่า listener
ประเภทอาร์กิวเมนต์ของการวัดคุม
androidx.benchmark.junit4.SideEffectRunListener
- ประเภทอาร์กิวเมนต์: สตริง
- ตัวเลือกที่พร้อมใช้งานมีดังนี้
androidx.benchmark.junit4.SideEffectRunListener
- มีค่าเริ่มต้นเป็น: ไม่ได้ระบุ
androidx.benchmark.fullTracing.enable
เปิดใช้จุดติดตาม androidx.tracing.perfetto
รายการ เช่น Jetpack Compose
การติดตามองค์ประกอบ
คุณต้องตั้งค่าโปรเจ็กต์เพื่อให้บันทึกการติดตามองค์ประกอบได้ จากการเปรียบเทียบ ดูข้อมูลเพิ่มเติมได้ที่จับภาพการติดตามด้วย Jetpack การเปรียบเทียบมาโคร
- ประเภทอาร์กิวเมนต์: บูลีน
- มีค่าเริ่มต้นเป็น:
false
androidx.benchmark.profiling.mode
อนุญาตการจับภาพไฟล์การติดตามขณะเรียกใช้การเปรียบเทียบ ตัวเลือกที่มีให้ จะเหมือนกับของไลบรารี Microbenchmark สำหรับข้อมูลเพิ่มเติม โปรดดู คำอธิบายที่ ทำโปรไฟล์การเปรียบเทียบย่อย
- ประเภทอาร์กิวเมนต์: สตริง
- ตัวเลือกที่พร้อมใช้งานมีดังนี้
MethodTracing
StackSampling
None
- มีค่าเริ่มต้นเป็น:
None
androidx.benchmark.startupProfiles.enable
อนุญาตให้คุณปิดใช้การสร้างโปรไฟล์สตาร์ทอัพระหว่างการเปรียบเทียบ
- ประเภทอาร์กิวเมนต์: บูลีน
- มีค่าเริ่มต้นเป็น:
true
androidx.benchmark.suppressErrors
ยอมรับรายการข้อผิดพลาดที่คั่นด้วยคอมมาและเปลี่ยนเป็นคำเตือน
- ประเภทอาร์กิวเมนต์: รายการสตริง
ตัวเลือกที่พร้อมใช้งานมีดังนี้
DEBUGGABLE
ข้อผิดพลาด
DEBUGGABLE
บ่งชี้ว่าแพ็กเกจเป้าหมายกำลังทำงานด้วยdebuggable=true
ในไฟล์ Manifest ซึ่งลดรันไทม์ลงอย่างมาก ประสิทธิภาพเพื่อรองรับฟีเจอร์การแก้ไขข้อบกพร่อง เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ ให้เรียกใช้ การเปรียบเทียบกับdebuggable=false
มีผลต่ออาร์กิวเมนต์ที่แก้ไขข้อบกพร่องได้ ความเร็วในการดำเนินการในลักษณะที่ทำให้ไม่สามารถปรับปรุงการเปรียบเทียบได้ ประสบการณ์การใช้งานจริงของผู้ใช้ หรืออาจทำให้ประสิทธิภาพของรุ่นถดถอยLOW-BATTERY
เมื่อแบตเตอรี่เหลือน้อย อุปกรณ์มักจะลดประสิทธิภาพเพื่อประหยัดพลังงานที่เหลืออยู่ แบตเตอรี่ ตัวอย่างเช่น การปิดใช้แกนขนาดใหญ่ แม้แต่ในกรณีที่ เสียบปลั๊กอุปกรณ์ไว้ ระงับข้อผิดพลาดนี้เฉพาะกรณีที่คุณตั้งใจ ทำโปรไฟล์แอปให้มีประสิทธิภาพลดลง
EMULATOR
ข้อผิดพลาด
EMULATOR
บอกให้คุณทราบว่าการเปรียบเทียบกำลังทำงานใน โปรแกรมจำลอง ซึ่งไม่ได้แสดงถึงอุปกรณ์ของผู้ใช้จริง โปรแกรมจำลอง การปรับปรุงการเปรียบเทียบอาจไม่กระทบต่อประสบการณ์จริงของผู้ใช้ หรืออาจถดถอยประสิทธิภาพจริงของอุปกรณ์ คุณควรใช้ผลิตภัณฑ์จริง อุปกรณ์เป็นเกณฑ์เปรียบเทียบแทน ระงับข้อผิดพลาดนี้ด้วยความระมัดระวังอย่างสุดความสามารถNOT-PROFILEABLE
แพ็กเกจเป้าหมาย
$packageName
กำลังทำงานโดยไม่มี<profileable shell=true>
Android 10 และ 11 ต้องมีโปรไฟล์ที่สามารถโปรไฟล์ได้ เพื่อให้ Macrobenchmark บันทึกข้อมูลการติดตามโดยละเอียดจากเป้าหมาย เช่น ส่วนการติดตามระบบที่กำหนดไว้ในแอป หรือ ห้องสมุด ระงับข้อผิดพลาดนี้ด้วยความระมัดระวังอย่างสุดความสามารถMETHOD-TRACING-ENABLED
การเรียกใช้การเปรียบเทียบแบบมาโครสำหรับแอปที่กำลังเปรียบเทียบมีการติดตามเมธอด เปิดอยู่ ซึ่งจะทำให้ VM ทำงานช้าลงกว่าปกติ ดังนั้นโปรดพิจารณา เมตริกจากไฟล์การติดตามในคำที่สัมพันธ์กัน เช่น เปรียบเทียบความเร็วของการเรียกใช้ครั้งแรกกับการเรียกใช้ครั้งที่ 2 การระงับ อาจส่งผลให้ได้ผลลัพธ์ที่ไม่ถูกต้อง หากคุณเปรียบเทียบเกณฑ์มาตรฐานของ บิลด์ที่มีตัวเลือกการติดตามเมธอดต่างๆ
ค่าเริ่มต้นคือ: รายการที่ว่างเปล่า
เพิ่มเติมการทดสอบเอาต์พุตDir
กำหนดค่าตำแหน่งที่มีการบันทึกรายงานการเปรียบเทียบ JSON และผลลัพธ์การสร้างโปรไฟล์ อุปกรณ์
- ประเภทอาร์กิวเมนต์: สตริงเส้นทาง
- ค่าเริ่มต้นเป็น: ทดสอบไดเรกทอรีภายนอกของ APK
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- อาร์กิวเมนต์การใช้เครื่องมือเปรียบเทียบแบบไมโคร
- สร้างโปรไฟล์พื้นฐาน
- ห้องสมุด JankStats