อาร์กิวเมนต์ของเครื่องมือวัดประสิทธิภาพระดับไมโคร

กําหนดค่าลักษณะการทํางานของ Microbenchmark ด้วยอาร์กิวเมนต์เครื่องมือวัดผลต่อไปนี้ คุณสามารถเพิ่มรายการเหล่านี้ลงในการกำหนดค่า Gradle หรือนำไปใช้โดยตรงเมื่อเรียกใช้เครื่องมือวัดประสิทธิภาพจากบรรทัดคำสั่งก็ได้ หากต้องการตั้งค่าอาร์กิวเมนต์เหล่านี้สำหรับการทดสอบ Android Studio และการทดสอบบรรทัดคำสั่งทั้งหมด ให้เพิ่มลงใน testInstrumentationRunnerArguments

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

นอกจากนี้ คุณยังตั้งค่าอาร์กิวเมนต์เครื่องมือวัดเมื่อเรียกใช้การเปรียบเทียบประสิทธิภาพจาก Android Studio ได้ด้วย หากต้องการเปลี่ยนอาร์กิวเมนต์ ให้ทําดังนี้

  1. แก้ไขการกําหนดค่าการเรียกใช้โดยคลิกแก้ไข แล้วเลือกการกําหนดค่าที่ต้องการแก้ไข
    รูปที่ 1 แก้ไขการกําหนดค่าการเรียกใช้
  2. แก้ไขอาร์กิวเมนต์ของเครื่องมือวัดผลโดยคลิก ข้างช่องอาร์กิวเมนต์ของเครื่องมือวัดผล
    รูปที่ 2 แก้ไขอาร์กิวเมนต์เครื่องมือวัด
  3. คลิก แล้วเพิ่มอาร์กิวเมนต์เครื่องมือวัดที่จำเป็น
    รูปที่ 3 เพิ่มอาร์กิวเมนต์เครื่องมือวัด

หากเรียกใช้การทดสอบประสิทธิภาพจากบรรทัดคำสั่ง ให้ใช้ -P android.testInstrumentationRunnerArguments.[name of the argument] ดังนี้

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling

หากคุณเรียกใช้คําสั่ง am instrument โดยตรง (ซึ่งอาจเป็นกรณีในสภาพแวดล้อมการทดสอบ CI) ให้ส่งอาร์กิวเมนต์ไปยัง am instrument ด้วย -e ดังนี้

adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกําหนดค่าการเปรียบเทียบใน CI ได้ที่การเปรียบเทียบใน CI

additionalTestOutputDir

กําหนดค่าตําแหน่งที่จะบันทึกรายงานการเปรียบเทียบประสิทธิภาพ JSON และผลลัพธ์การโปรไฟล์ในอุปกรณ์

  • ประเภทอาร์กิวเมนต์: สตริงเส้นทางไฟล์
  • ค่าเริ่มต้น: ไดเรกทอรีภายนอกของ APK การทดสอบ

androidx.benchmark.dryRunMode.enable

ช่วยให้คุณเรียกใช้การเปรียบเทียบในลูปเดียวเพื่อยืนยันว่าการเปรียบเทียบทํางานได้อย่างถูกต้อง

ซึ่งหมายความว่า

  • ระบบจะไม่บังคับใช้ข้อผิดพลาดในการกําหนดค่า (เช่น เพื่อให้การทดสอบความถูกต้องตามปกติในโปรแกรมจำลองทําได้ง่ายขึ้น)
  • การเปรียบเทียบจะทํางานเพียงลูปเดียวโดยไม่มีการอุ่นเครื่อง
  • ระบบจะไม่บันทึกการวัดและการติดตามเพื่อลดรันไทม์

ซึ่งจะเพิ่มประสิทธิภาพเพื่อเพิ่มปริมาณการทดสอบและตรวจสอบตรรกะการเปรียบเทียบกับข้อมูลการสร้างและวัดผลที่ถูกต้อง

  • ประเภทอาร์กิวเมนต์: บูลีน
  • ค่าเริ่มต้นคือ: false

androidx.benchmark.iterations

ลบล้างจํานวนการวนซ้ำเป้าหมายที่ทำงานตามเวลาเพื่อช่วยในการตรวจสอบปริมาณงานที่สอดคล้องกัน โดยปกติแล้ว ตัวเลือกนี้จะมีประโยชน์เฉพาะเมื่อเปิดใช้การโปรไฟล์เพื่อช่วยตรวจสอบว่ามีการทํางานในปริมาณที่สอดคล้องกันภายในการติดตามการโปรไฟล์เมื่อเปรียบเทียบการติดตั้งใช้งานหรือการเรียกใช้ที่แตกต่างกัน ในสถานการณ์อื่นๆ การดำเนินการนี้อาจลดความแม่นยำหรือความเสถียรของการวัด

  • ประเภทอาร์กิวเมนต์: จํานวนเต็ม
  • ค่าเริ่มต้น: ไม่ระบุ

androidx.benchmark.junit4.SideEffectRunListener

คุณอาจได้รับผลลัพธ์การเปรียบเทียบที่ไม่สอดคล้องกันหากมีการดำเนินการงานเบื้องหลังที่ไม่เกี่ยวข้องขณะที่การเปรียบเทียบกำลังทำงานอยู่

หากต้องการปิดใช้การทํางานในเบื้องหลังระหว่างการเปรียบเทียบ ให้ตั้งค่าlistener ประเภทอาร์กิวเมนต์เครื่องมือวัดเป็น androidx.benchmark.junit4.SideEffectRunListener

  • ประเภทอาร์กิวเมนต์: สตริง
  • ตัวเลือกที่มี
    • androidx.benchmark.junit4.SideEffectRunListener
  • ค่าเริ่มต้น: ไม่ระบุ

androidx.benchmark.output.enable

เปิดใช้การเขียนไฟล์ JSON ผลลัพธ์ไปยังที่จัดเก็บข้อมูลภายนอก

  • ประเภทอาร์กิวเมนต์: บูลีน
  • ค่าเริ่มต้นคือ: true

androidx.benchmark.profiling.mode

อนุญาตให้บันทึกไฟล์การติดตามขณะทำการทดสอบประสิทธิภาพ ดูตัวเลือกที่มีได้ในโปรไฟล์การทดสอบประสิทธิภาพระดับไมโคร

  • ประเภทอาร์กิวเมนต์: สตริง
  • ตัวเลือกที่มี
    • MethodTracing
    • StackSampling
    • None
  • ค่าเริ่มต้น: None

androidx.benchmark.suppressErrors

ยอมรับรายการข้อผิดพลาดที่คั่นด้วยคอมมาเพื่อเปลี่ยนเป็นคำเตือน

  • ประเภทอาร์กิวเมนต์: รายการสตริง
  • ตัวเลือกที่มี
    • DEBUGGABLE
    • LOW-BATTERY
    • EMULATOR
    • CODE-COVERAGE
    • UNLOCKED
    • SIMPLEPERF
    • ACTIVITY-MISSING
  • ค่าเริ่มต้น: รายการว่าง

androidx.benchmark.startupMode.enable (เลิกใช้งานแล้ว)

กำหนดค่าลักษณะการวนซ้ำใหม่เพื่อรองรับการเปรียบเทียบโค้ดระหว่างการเริ่มต้น ระบบจะเรียกใช้การเปรียบเทียบโดยไม่ต้องวนรอบการอุ่นเครื่องสําหรับการวัด 10 ครั้ง ระบบจะปิดใช้ค่าเฉลี่ยของรอบเพื่อลดค่าใช้จ่ายเพิ่มเติมในไมโครเบนช์มาร์ก

  • ประเภทอาร์กิวเมนต์: บูลีน
  • ค่าเริ่มต้น: false