โดยค่าเริ่มต้น การเปรียบเทียบขนาดเล็กมากจะให้ข้อมูลเกี่ยวกับช่วงเวลาและ การจัดสรรโค้ดที่เรียกใช้ หากคุณต้องการตรวจสอบสาเหตุที่ทำให้มีการวัดผล โค้ดทำงานช้า คุณสามารถเรียกใช้การเปรียบเทียบด้วยเครื่องมือสร้างโปรไฟล์ CPU แนบมาด้วย
หากต้องการเลือกการกำหนดค่าเครื่องมือสร้างโปรไฟล์ ให้เพิ่มเครื่องมือ
อาร์กิวเมนต์ตัววิ่ง androidx.benchmark.profiling.mode
ที่มีหนึ่งใน
MethodTracing
, StackSampling
หรือ
อาร์กิวเมนต์ None
ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
สำหรับข้อมูลเพิ่มเติม
โปรดดูข้อมูลเกี่ยวกับตัวเลือกที่หัวข้อเลือกการกำหนดค่าการบันทึก
MethodTracing
เทียบเท่ากับ "Trace Java Methods" และ StackSampling
เทียบเท่ากับ "เมธอด Java ตัวอย่าง" ตามที่ระบุไว้ในเอกสารนั้น
ดึงดูด
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 ให้เลือกไฟล์ > เปิด หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ
โปรดอ่านและทำความเข้าใจการติดตามที่หัวข้อตรวจสอบการติดตาม
เมธอดติดตาม
การติดตามเมธอดมีประโยชน์เมื่อคุณพยายามเพิ่มประสิทธิภาพโค้ดของคุณ จะช่วยให้คุณระบุวิธีการที่ใช้เวลาทำงานนานกว่าวิธีอื่นๆ ได้ คุณสามารถ ให้มุ่งเน้นการเพิ่มประสิทธิภาพวิธี ที่มีผลต่อประสิทธิภาพมากที่สุด
การทำโปรไฟล์จะเกิดขึ้นตามลำดับหลังจากการวัดโค้ด ดังนั้น การทดสอบจึงแสดงผลทั้ง 2 รายการ เวลาที่แม่นยำและผลลัพธ์ในการทำโปรไฟล์
สแต็กแซมพลิง
การติดตามตัวอย่างยังช่วยระบุวิธีการที่มีค่าใช้จ่ายสูงได้โดยไม่ต้องใช้ โอเวอร์เฮดด้านประสิทธิภาพของ Method Tracing อย่างไรก็ตาม หากแอปป้อนเมธอด หลังจากบันทึกสแต็กการเรียกใช้และเมธอดออกก่อน การจับภาพ จะไม่มีการบันทึกการเรียกเมธอด เพื่อติดตามเมธอดอย่างเหมาะสมด้วย มีวงจรชีวิตสั้น ให้ใช้ Method Tracing แทนการติดตามตัวอย่าง
เมื่อใช้การสุ่มตัวอย่างแบบสแต็ก สแต็กของตัวอย่างเปรียบเทียบหลังจากการวอร์มอัพจะเสร็จสิ้น เสร็จสมบูรณ์ คุณสามารถควบคุมความถี่ตัวอย่างได้ และระยะเวลาของการสุ่มตัวอย่างโดยใช้การวัดคุม อาร์กิวเมนต์
ใน Android 10 (API 29) ขึ้นไป การสุ่มตัวอย่างสแต็กจะใช้ Simpleperf เพื่อสุ่มตัวอย่าง
Calltack ของแอป รวมถึงโค้ด C++ ใน Android 9 (API 28) และต่ำกว่า ระบบจะใช้
Debug.startMethodTracingSampling
เพื่อบันทึกสแต็กตัวอย่าง
คุณกำหนดค่าโหมดการทำโปรไฟล์นี้ได้โดยเพิ่มเครื่องมืออื่น อาร์กิวเมนต์:
androidx.benchmark.profiling.sampleFrequency
- จำนวนตัวอย่างสแต็กที่จะบันทึกต่อวินาที
- ประเภทอาร์กิวเมนต์: จำนวนเต็ม
- ค่าเริ่มต้นคือ 1,000 ตัวอย่างต่อวินาที
androidx.benchmark.profiling.sampleDurationSeconds
- ระยะเวลาของการเปรียบเทียบ
- ประเภทอาร์กิวเมนต์: จำนวนเต็ม
- ค่าเริ่มต้นคือ 5 วินาที
ไม่มี
อาร์กิวเมนต์นี้ไม่ได้เก็บไฟล์การทำโปรไฟล์ ข้อมูลเกี่ยวกับช่วงเวลาและ แต่ระบบยังคงวัดการจัดสรรอยู่
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- อาร์กิวเมนต์การใช้เครื่องมือเปรียบเทียบแบบไมโคร
- เรียกใช้การเปรียบเทียบในการผสานรวมแบบต่อเนื่อง