โดยค่าเริ่มต้น มิโครเบนช์มาร์กจะแสดงข้อมูลเกี่ยวกับเวลาและการจัดสรรของโค้ดที่ดำเนินการ หากต้องการตรวจสอบสาเหตุที่โค้ดที่วัดได้ทํางานช้า ให้เรียกใช้การทดสอบประสิทธิภาพโดยแนบเครื่องมือวิเคราะห์โปรไฟล์ CPU
หากต้องการเลือกการกำหนดค่าเครื่องมือวิเคราะห์ ให้เพิ่มอาร์กิวเมนต์เครื่องมือวัด androidx.benchmark.profiling.mode
กับอาร์กิวเมนต์ MethodTracing
, StackSampling
หรือ None
รายการใดรายการหนึ่งตามที่แสดงในข้อมูลโค้ดต่อไปนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกได้ที่เลือกการกำหนดค่าการบันทึก
MethodTracing
เทียบเท่ากับ "Trace Java Methods" และ StackSampling
เทียบเท่ากับ "Sample Java Methods" ตามที่ระบุไว้ในเอกสารดังกล่าว
Groovy
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling' } }
Kotlin
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling" } }
เมื่อคุณสร้างโปรไฟล์การเปรียบเทียบประสิทธิภาพ ระบบจะคัดลอกไฟล์ .trace
เอาต์พุตไปยังโฮสต์ในไดเรกทอรีพร้อมกับผลลัพธ์ JSON หากต้องการตรวจสอบผลลัพธ์ของโปรไฟล์ในเครื่องมือวิเคราะห์ CPU ใน Android Studio ให้เลือกไฟล์ > เปิด ดูข้อมูลเพิ่มเติมเกี่ยวกับการอ่านและทำความเข้าใจร่องรอยได้ที่ตรวจสอบร่องรอย
MethodTracing
การติดตามเมธอดมีประโยชน์เมื่อคุณพยายามเพิ่มประสิทธิภาพโค้ด เนื่องจากช่วยระบุเมธอดที่ใช้เวลานานกว่าเมธอดอื่นๆ ได้ จากนั้นคุณก็มุ่งเน้นที่การเพิ่มประสิทธิภาพวิธีการที่ส่งผลต่อประสิทธิภาพมากที่สุดได้
การจัดเก็บโปรไฟล์จะเกิดขึ้นตามลําดับหลังการวัดโค้ด เพื่อให้การทดสอบแสดงทั้งเวลาและผลการจัดเก็บโปรไฟล์ที่แม่นยํา
StackSampling
นอกจากนี้ การติดตามตัวอย่างยังช่วยระบุเมธอดที่มีค่าใช้จ่ายสูงได้โดยไม่ต้องเพิ่มภาระงานด้านประสิทธิภาพของการติดตามเมธอด อย่างไรก็ตาม หากแอปเข้าสู่เมธอดหลังจากบันทึกสแต็กการเรียกแล้ว และเมธอดออกจากระบบก่อนการบันทึกครั้งถัดไป ระบบจะไม่บันทึกการเรียกเมธอด หากต้องการติดตามเมธอดที่มีวงจรสั้นๆ อย่างถูกต้อง ให้ใช้การติดตามเมธอดแทนการติดตามตัวอย่าง
เมื่อใช้การสุ่มตัวอย่างสแต็ก การเปรียบเทียบจะสุ่มตัวอย่างสแต็กการเรียกใช้หลังจากการอุ่นเครื่องเสร็จสมบูรณ์ คุณควบคุมความถี่ในการสุ่มตัวอย่างและระยะเวลาในการสุ่มตัวอย่างได้โดยใช้อาร์กิวเมนต์เครื่องมือวัด
ใน Android 10 (API 29) ขึ้นไป การสุ่มตัวอย่างสแต็กจะใช้ Simpleperf เพื่อสุ่มตัวอย่างสแต็กการเรียกของแอป รวมถึงโค้ด C++ ใน Android 9 (API 28) และต่ำกว่า ระบบจะใช้ Debug.startMethodTracingSampling
เพื่อบันทึกตัวอย่างสแต็ก
คุณกําหนดค่าโหมดการโปรไฟล์นี้ได้โดยเพิ่มอาร์กิวเมนต์เครื่องมือวัดผลอีกรายการ ดังนี้
androidx.benchmark.profiling.sampleFrequency
- จำนวนตัวอย่างสแต็กที่จะบันทึกต่อวินาที
- ประเภทอาร์กิวเมนต์: จำนวนเต็ม
- ค่าเริ่มต้นคือ 1,000 ตัวอย่างต่อวินาที
androidx.benchmark.profiling.sampleDurationSeconds
- ระยะเวลาของข้อมูลเปรียบเทียบที่จะทํางาน
- ประเภทอาร์กิวเมนต์: จำนวนเต็ม
- ค่าเริ่มต้นคือ 5 วินาที
ไม่มี
อาร์กิวเมนต์นี้จะไม่บันทึกไฟล์โปรไฟล์ ระบบจะยังคงวัดข้อมูลเกี่ยวกับเวลาและการจัดสรร
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- อาร์กิวเมนต์เครื่องมือวัดประสิทธิภาพระดับไมโคร
- เรียกใช้การเปรียบเทียบในการผสานรวมอย่างต่อเนื่อง