Browse commands

/impeccable optimize

Optimize

วินิจฉัยและแก้ไขประสิทธิภาพ UI ตั้งแต่ LCP ถึงขนาดบันเดิล

เมื่อไรควรใช้

/impeccable optimize มีไว้สำหรับอินเทอร์เฟซที่รู้สึกช้า การเพนต์ครั้งแรกใช้เวลานาน การเลื่อนกระตุก ภาพโผล่มาช้า การโต้ตอบรู้สึกล่าช้า บันเดิลส่ง JavaScript 800KB ใช้เมื่อ Web Vitals แย่หรือเมื่อผู้ใช้บ่นว่าสิ่งต่างๆ ช้า

อย่าใช้เป็นการเพิ่มประสิทธิภาพล่วงหน้า หาก LCP คือ 1.1s และ INP คือ 80ms หยุด งานออกแบบสำคัญกว่า

วิธีการทำงาน

สกิลทำงานผ่านห้ามิติประสิทธิภาพ:

  1. การโหลดและ Web Vitals: LCP, INP, CLS ระบุสิ่งที่บล็อกการเพนต์ครั้งแรก สิ่งที่ทำให้การโต้ตอบล่าช้า สิ่งที่เลื่อนเลย์เอาต์
  2. การเรนเดอร์: การเรนเดอร์ซ้ำที่ไม่จำเป็น การขาด memoization การปรับความสอดคล้องที่แพง การกระตุกเลย์เอาต์ในลูป
  3. แอนิเมชัน: มีอะไรกำลังแอนิเมตคุณสมบัติเลย์เอาต์ไหม transform และ opacity เป็นสิ่งเดียวที่ถูกแตะไหม will-change ช่วยหรือทำร้ายที่นี่
  4. ภาพและสินทรัพย์: การโหลดแบบ lazy ภาพเรสปอนซิฟ (srcset, sizes) รูปแบบทันสมัย (WebP, AVIF) ขนาดที่ตั้งไว้เพื่อป้องกัน CLS
  5. ขนาดบันเดิล: import ที่ไม่ได้ใช้ dependencies ที่ใหญ่เกินไป การขาด code-splitting โค้ดที่ตายแล้ว

สกิลวัดก่อนและหลัง ทุกการแก้ไขได้รับการวัดปริมาณ หากการเปลี่ยนแปลงไม่ขยับเมตริก มันจะถูกย้อนกลับ

ลองใช้งาน

/impeccable optimize the homepage

รูปร่างที่คาดหวัง:

LCP: 3.2s → 1.4s
  - Hero image preloaded (-800ms)
  - Removed render-blocking font stylesheet (-240ms)
  - Deferred analytics script (-180ms)

INP: 240ms → 90ms
  - Debounced scroll handler
  - Memoized expensive list render
  - Removed synchronous layout read in event loop

CLS: 0.18 → 0.02
  - Set dimensions on hero image and logo
  - Reserved space for async header badge

Bundle: 340KB → 180KB
  - Removed unused lodash import (52KB)
  - Code-split the playground route (78KB)
  - Dropped deprecated icon set (30KB)

ข้อควรระวัง

  • เพิ่มประสิทธิภาพก่อนวัด โดยไม่มีเมตริกฐาน คุณไม่สามารถบอกได้ว่าอะไรช่วย รัน /impeccable optimize ด้วยตัวเลข Web Vitals เฉพาะ ไม่ใช่ความรู้สึก
  • ไล่ตามชัยชนะเล็กๆ การปรับปรุง INP 20ms ที่ใช้เวลาหนึ่งสัปดาห์แทบไม่คุ้มค่า Optimize มีผลตอบแทนลดลง รู้ว่าเมื่อไรต้องหยุด
  • ลืมวัดใหม่หลังทุกการเปลี่ยนแปลง บิวด์อาจทำให้สิ่งต่างๆ แย่ลงในทางที่สกิลไม่ได้คาดการณ์ ตรวจสอบ