วิธีการโปรไฟล์ทำปฏิกิริยาซอร์สโค้ดดั้งเดิมโดยใช้ Xcode / Instruments / Time Profiler


19

เรากำลังใช้ React Native 0.59.10และ React-Redux 5.0.7และกำลังประสบปัญหาประสิทธิภาพการทำงานของ CPU ซึ่งการกระทำของ Redux ของเราใช้เวลาประมาณ 0.25 วินาทีในการดำเนินการให้เสร็จสมบูรณ์

เราได้ทำโปรไฟล์โดยใช้การกำหนดค่า Time Profiler ใน Instruments แต่ไม่มีรหัส JS ของเราที่เป็นสัญลักษณ์

การดีบักจากระยะไกลใน Chrome ดูเหมือนว่าจะดีบั๊กหน้า "ตัวตรวจสอบระยะไกล" ซึ่งไม่ช่วยเหลือทั้งหมด

มีวิธีการสร้าง / แนบแผนที่แหล่งที่มาหรือสัญลักษณ์ที่อยู่หน่วยความจำที่เห็นด้านล่างเพื่อชื่อฟังก์ชั่น JS / โทร?

เครื่องดนตรี Callstack


หากคุณใช้งาน expo คุณสามารถเรียกใช้แอปโดยตรงใน chrome และตรวจแก้จุดบกพร่องที่นั่น
Mykybo

ไม่เรากำลังใช้ส่วนประกอบพื้นฐานจำนวนมากอยู่แล้วดังนั้นงาน Expo จึงไม่ใช่ตัวเลือก
Craig Otis

คำตอบ:


1

Firefox Profiler

ทำความเข้าใจกับ Firefox Profiler

Firefox Profiler มีเอกสารที่เป็นปัจจุบันมากกว่านี้ที่ profiler.firefox.com/docs/ อย่างไรก็ตามข้อมูลต่อไปนี้อาจมีข้อมูลที่เป็นประโยชน์สำหรับปัญหาเฉพาะของตุ๊กแก

คุณสามารถดูคำถามที่พบบ่อยเกี่ยวกับ Firefox Profilers

การรายงานปัญหาประสิทธิภาพมีคำแนะนำทีละขั้นตอนในการรับโปรไฟล์เมื่อนักพัฒนา Firefox ร้องขอ

1. เส้นเวลา

เส้นเวลามีเครื่องหมายการติดตามหลายแถว (ส่วนที่มีสี) ซึ่งระบุเหตุการณ์ที่น่าสนใจ โฮเวอร์เหนือพวกเขาเพื่อดูข้อมูลเพิ่มเติม ด้านล่างเครื่องหมายการติดตามคือแถวที่สอดคล้องกับกิจกรรมในเธรดที่หลากหลาย

เคล็ดลับ: เธรดที่มีคำอธิบายประกอบด้วย "[เริ่มต้น]" อยู่ในกระบวนการหลัก (aka "UI", aka "เบราว์เซอร์ chrome", aka "หลัก") และที่ทำหมายเหตุประกอบไว้ด้วย "[แท็บ]" อยู่ในเนื้อหาเว็บ (aka กระบวนการ "child")

ป้อนคำอธิบายรูปภาพที่นี่

เคล็ดลับ: งานที่ต้องใช้เวลานานในกระบวนการหลักจะบล็อกอินพุตหรือรูปวาดทั้งหมดด้วยเบราว์เซอร์ UI (aka "UI jank") ในขณะที่งานที่ดำเนินการมานานในกระบวนการเนื้อหาจะบล็อกการโต้ตอบกับหน้าเว็บ แต่ยังอนุญาตให้ผู้ใช้เลื่อนและ ขอขอบคุณ APZ

เครื่องหมายติดตาม

Red: สิ่งเหล่านี้บ่งชี้ว่าการวนรอบเหตุการณ์ไม่ตอบสนอง โปรดทราบว่ากิจกรรมลำดับความสำคัญสูงเช่น vsync จะไม่รวมอยู่ที่นี่ โปรดทราบว่าสิ่งนี้บ่งชี้ว่าจะเกิดอะไรขึ้นหากมีเหตุการณ์รออยู่และไม่จำเป็นว่าจะต้องมีเหตุการณ์ค้างอยู่นาน

Black: ระบุการโทร IPC แบบซิงโครนัส

2. โทรทรี

ป้อนคำอธิบายรูปภาพที่นี่

ต้นไม้การโทรแสดงตัวอย่างที่จัดโดย 'เวลาทำงาน' ซึ่งจะแสดงข้อมูลตามเวลานาฬิกาแขวน มีชื่อสีเทาอ่อนทางด้านขวาขององค์ประกอบต้นไม้ที่ระบุว่ารหัสมาจากที่ใด โปรดทราบว่าองค์ประกอบอาจมาจาก JavaScript, Gecko หรือไลบรารีระบบ โปรดทราบว่าหากบางฟังก์ชั่นยังไม่ได้ตั้งชื่ออย่างถูกต้องสัญลักษณ์อาจยังไม่เสร็จสิ้น

เคล็ดลับ: คุณสามารถคลิกขวาที่ชื่อฟังก์ชันเพื่อรับตัวเลือกเพื่อคัดลอกชื่อไปยังคลิปบอร์ด

3. การแชร์โปรไฟล์ คลิก "แชร์ ... "> แบ่งปันยอมรับว่า URL ที่คุณเปิดและส่วนขยาย Firefox ของคุณจะรวมอยู่ในข้อมูลโปรไฟล์ที่ส่งไปยังเซิร์ฟเวอร์ หากคุณเลือกช่วงเวลาอื่น URL ที่เปิดเผยโดยการกด "Permalink" จะเปลี่ยนเพื่อให้คุณมั่นใจได้ว่าผู้รับ URL จะเห็นสิ่งเดียวกันกับที่คุณเห็น


ผู้สร้างโปรไฟล์ของ Firefox มีพฤติกรรมแตกต่างจากตัวเลือก Safari หรือ Chrome หรือไม่ จากประสบการณ์ของฉันพวกเขาโปรไฟล์แท็บ / หน้าการดีบักแบบรีโมทเองไม่ใช่แอปพลิเคชัน React Native ที่รันอยู่
Craig โอทิส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.