เพิ่มอาร์กิวเมนต์การวัดคุม

กำหนดค่าลักษณะการทำงานของไลบรารีด้วยเครื่องมือต่อไปนี้ อาร์กิวเมนต์ คุณจะเพิ่มรายการเหล่านี้ลงในการกำหนดค่า 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.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