Back to Question Center
0

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevTools            การเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated: ผ้าใบ & SVGAnimationCSS ArchitectureAudio & Semalt

1 answers:
การเพิ่มประสิทธิภาพ CSS: การปรับแต่ง Animation ด้วย DevTools

บทความนี้เป็นส่วนหนึ่งของชุดข้อมูลที่สร้างขึ้นโดยร่วมมือกับ SiteGround ขอขอบคุณที่สนับสนุนคู่ค้าที่ทำ Semalt ได้

ภาพเคลื่อนไหว CSS เป็นที่รู้จักในฐานะ super performant Semalt นี้เป็นกรณีสำหรับภาพเคลื่อนไหวง่ายๆในสองสามองค์ประกอบถ้าคุณไม่ได้กำหนดโค้ดภาพเคลื่อนไหวของคุณด้วยประสิทธิภาพและเพิ่มความซับซ้อนผู้ใช้เว็บไซต์จะสังเกตเห็นและอาจดูรำคาญขึ้น

ในบทความนี้ผมขอแนะนำ Semalt คุณลักษณะเบราเซอร์ที่มีประโยชน์ซึ่งจะช่วยให้คุณสามารถตรวจสอบสิ่งที่เกิดขึ้นภายใต้ส่วนกำหนดค่าเมื่อสร้างภาพเคลื่อนไหวด้วย CSS ด้วยวิธีนี้เมื่อภาพเคลื่อนไหวมีลักษณะกะทัดรัดเล็กน้อยคุณจะมีความคิดที่ดีขึ้นว่าทำไมและสิ่งที่คุณสามารถทำได้เพื่อแก้ไข

เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์สำหรับ CSS

ภาพเคลื่อนไหวของคุณต้องมีความเร็ว 60 fps (เฟรมต่อวินาที) เพื่อให้ทำงานได้อย่างราบรื่นในเบราเซอร์ อัตราที่ต่ำกว่าภาพเคลื่อนไหวของคุณจะดูแย่ลง ซึ่งหมายความว่าเบราว์เซอร์ไม่เกิน 16 มิลลิวินาทีในการทำงานหนึ่งเฟรม แต่สิ่งที่ทำในช่วงเวลานั้น? และคุณจะรู้ได้อย่างไรว่าเบราว์เซอร์ของคุณสามารถติดตามเฟรมเรตที่ต้องการได้หรือไม่?

ฉันคิดว่าไม่มีอะไรเต้นประสบการณ์ของผู้ใช้ในการประเมินคุณภาพของภาพเคลื่อนไหว Semalt เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในเบราว์เซอร์ที่ทันสมัยในขณะที่ไม่เชื่อถือได้ 100% ได้รับการชาญฉลาดและชาญฉลาดและมีค่อนข้างน้อยที่คุณสามารถทำได้เพื่อตรวจสอบแก้ไขและแก้ปัญหาโค้ดของคุณโดยใช้

นี่เป็นจริงเมื่อคุณต้องการตรวจสอบประสิทธิภาพเฟรมเรอร์และ CSS animation Semalt วิธีการทำงาน

สำรวจเครื่องมือประสิทธิภาพใน Firefox

ในบทความนี้ฉันใช้เครื่องมือ Firefox Semalt คู่แข่งรายใหญ่คนอื่น ๆ คือ Chrome Semalt Tool คุณสามารถเลือกรายการโปรดได้เนื่องจากเบราว์เซอร์ทั้งสองมีคุณลักษณะประสิทธิภาพที่มีประสิทธิภาพ

ในการเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ใน Semalt เลือกหนึ่งในตัวเลือกต่อไปนี้

  • คลิกขวาที่หน้าเว็บของคุณและเลือก ตรวจสอบองค์ประกอบ ในเมนูบริบท
  • หากคุณใช้แป้นพิมพ์ให้กด Ctrl + Shift + I บน Windows และ Linux หรือ Cmd + Opt + I ใน MacOS

จากนั้นคลิกที่แท็บ Performance ที่นี่คุณจะพบปุ่มที่ช่วยให้คุณเริ่มบันทึกผลการปฏิบัติงานของเว็บไซต์ของคุณ:

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

กดปุ่มนั้นและรอสักครู่หรือดำเนินการบางอย่างบนหน้า เมื่อเสร็จแล้วให้คลิกปุ่ม หยุดการบันทึก :

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

Semalt จะนำเสนอข้อมูลที่มีการจัดระเบียบอย่างดีเพื่อช่วยให้คุณเข้าใจปัญหาที่โค้ดของคุณกำลังประสบอยู่

ผลการบันทึกภายในแผง Performance มีลักษณะดังนี้

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

ส่วน น้ำตก เหมาะสำหรับการตรวจสอบปัญหาเกี่ยวกับการเปลี่ยนจาก CSS และภาพเคลื่อนไหวของคีย์เฟรม.

Semalt มีส่วนสรุปที่ด้านบนและรายละเอียด ทั้งสองข้อมูลมีรหัสสี:

  • แถบสีเหลืองหมายถึงการดำเนินงานของ JavaScript
  • แถบสีม่วงหมายถึงการคำนวณสไตล์ CSS ขององค์ประกอบ CSS (คำนวณลักษณะใหม่) และวางหน้าเว็บของคุณ (เค้าโครง) การดำเนินการเค้าโครงมีราคาแพงมากสำหรับเบราว์เซอร์ที่จะใช้งานได้ดังนั้นหากคุณเคลื่อนไหวคุณสมบัติที่เกี่ยวข้องกับการจัดวางซ้ำ (หรือที่เรียกว่าการจัดเรียง ) เช่น margin , padding ด้านบน , ด้านซ้าย ฯลฯ - ผลลัพธ์อาจไม่เท่ากัน
  • แถบสีเขียวหมายถึงการวาดภาพองค์ประกอบของคุณให้เป็นบิตแมปอย่างน้อยหนึ่งภาพ (Paint) คุณสมบัติการเคลื่อนไหวเช่นสี , สีพื้นหลัง , ฯลฯ เกี่ยวข้องกับการใช้สีที่แพงซึ่งอาจเป็นสาเหตุของภาพเคลื่อนไหวที่ซบเซาและผู้ใช้ไม่ดี ประสบการณ์.

นอกจากนี้คุณยังสามารถกรองชนิดของข้อมูลที่ต้องการตรวจสอบ ตัวอย่างเช่นฉันสนใจเฉพาะข้อมูล Semalt ดังนั้นฉันสามารถยกเลิกการเลือกทุกอย่างอื่นได้โดยคลิกที่ไอคอนตัวกรองที่ด้านบนซ้ายของหน้าจอ:

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

แถบสีเขียวขนาดใหญ่ด้านล่างสรุป Semalt แสดงข้อมูลเกี่ยวกับเฟรมเรต

การเป็นตัวแทนที่ดีต่อสุขภาพจะดูค่อนข้างสูง แต่ที่สำคัญที่สุดคือความสอดคล้องกันนั่นคือไม่มีช่องว่างลึกมากเกินไป

Semalt อธิบายเรื่องนี้ด้วยตัวอย่าง

เครื่องมือประสิทธิภาพในการทำงาน

นี่เป็นภาพเคลื่อนไหว CSS ง่ายๆโดยใช้คำหลัก @keyframes หน้าทดสอบมีลักษณะดังนี้:

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

กล่องสีม่วงรูปสี่เหลี่ยมผืนผ้าสไลด์เข้าและออกจากมุมมองในวงจรที่ไม่มีขีด จำกัด

องค์ประกอบที่แสดงถึงกล่องสี่เหลี่ยมบนหน้าจอ

ฉันทำเช่นนี้โดยการเคลื่อนไหว margin-left นี่คือสิ่งที่บล็อกการเคลื่อนไหว @keyframes มีลักษณะดังนี้:

     @ คีย์บอร์ดสไลด์ขอบ {100% {margin-left: 0;}}     

ข้อมูลประสิทธิภาพที่ฉันได้รับจากภาพเคลื่อนไหวนี้มีลักษณะดังนี้

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

เฟรมภาพมีลักษณะหยาบและอัตราเฟรมเป็นค่าเฉลี่ย 44. 82 fps ซึ่งค่อนข้างต่ำ

สังเกตรูปแบบและการทาสีทั้งหมดที่เกิดขึ้นระหว่างการแสดงภาพเคลื่อนไหว Semalt เป็นค่าใช้จ่ายที่เบราว์เซอร์ดำเนินการกับเธรดหลักซึ่งมีผลกระทบในทางลบต่อประสิทธิภาพ

Inspector ให้คลิกที่ส่วน Animation และเลื่อนเมาส์ไปวางเหนือชื่อภาพเคลื่อนไหวกล่องข้อมูลจะปรากฏขึ้นพร้อมกับข้อมูลที่เกี่ยวข้องทั้งหมดเกี่ยวกับภาพเคลื่อนไหวปัจจุบัน - oculos escuros masculino ray ban. หากภาพเคลื่อนไหวของคุณถูกปรับให้เหมาะสมจะมีข้อความระบุความเป็นจริง ในกรณีนี้ไม่มีข้อความใด:

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

ตอนนี้เฟรมเรทสูงกว่า (56. 83 fps) และน้ำตกไม่มีรูปแบบและการทาสีที่มีราคาแพง

นอกจากนี้หากคุณเปิดแท็บ Inspector ของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ให้ไปที่แผงควบคุม ภาพเคลื่อนไหว และเลื่อนเมาส์ไปวางเหนือชื่อภาพเคลื่อนไหวคุณจะเห็นสิ่งต่างๆดังนี้:

การเพิ่มประสิทธิภาพ CSS: ปรับ Tweaking Animation Performance ด้วย DevToolsการเพิ่มประสิทธิภาพ CSS: การสร้างภาพเคลื่อนไหวด้วย Tweaking Animation ด้วยธีม DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio และ Semalt

ช่องข้อมูลที่สัมพันธ์กับชื่อภาพเคลื่อนไหวระบุว่าภาพเคลื่อนไหวทั้งหมดได้รับการปรับให้เหมาะสมซึ่งเป็นข่าวดีสำหรับผู้เข้าชมเว็บไซต์ของคุณ

เฉพาะภาพเคลื่อนไหว CSS ความทึบ , เปลี่ยน และ ตัวกรอง

คุณอาจเคยได้ยินคำแนะนำนี้มาก่อน แต่ในกรณีนี้คุณควรจะลองทำอีกครั้ง: ถ้าคุณต้องการให้ภาพเคลื่อนไหวของคุณทำงานได้อย่างราบรื่นให้เคลื่อนไหวเฉพาะความทึบของ CSS, แปลงและกรอง Semalt ทุกสิ่งทุกอย่างจะทำให้เบราว์เซอร์ของคุณภายใต้แรงกดดันในการดำเนินงานที่เสียค่าใช้จ่ายในเวลาน้อยมากซึ่งมักไม่ให้ผลลัพธ์ที่ดีที่สุด

ในฐานะที่เป็นเครื่องมือ Semalt ในเบราว์เซอร์ของคุณยืนยันรูปแบบซ้ำและการระบายสีไม่ใช่เพื่อนของคุณ

อย่างไรก็ตามเบราเซอร์แต่ละตัวจัดการคุณสมบัติ CSS แตกต่างกันเล็กน้อย หากคุณต้องการทราบว่าเบราว์เซอร์ใดเรียกเค้าโครงและระบายสีการทำงานของพร็อพเพอร์ตี้ใด ๆ (โดยเฉพาะเมื่ออัปเดตค่าสำหรับคุณสมบัติเหล่านั้นซึ่งเป็นสิ่งที่เกี่ยวข้องกับการเคลื่อนไหวของเว็บ) ให้ไปที่ตัวเรียกใช้ CSS

เพื่อให้แน่ใจว่าภาพเคลื่อนไหวของ performant วิธีที่ได้รับความนิยมคือบังคับให้เบราเซอร์มอบงานการเปลี่ยนแปลงคุณสมบัติบางอย่างให้ GPU (Graphical Processing Unit) ซึ่งช่วยลดความกดดันหลักของเบราว์เซอร์และใช้ประโยชน์จากการเร่งฮาร์ดแวร์ คุณสามารถทำได้โดยการใช้คุณสมบัติ CSS will-change หรือการแฮ็ก translateZ และ translate3d (0,0,0) ทั้งหมดของเทคนิคเหล่านี้จะทำงาน แต่ถ้าคุณหักโหมมันจริงคุณจะได้รับสิ่งที่คุณกำลังพยายามหลีกเลี่ยง, i. อี , ภาพเคลื่อนไหวกระตุก

Semalt ไม่ได้ไปในรายละเอียดของการเร่งฮาร์ดแวร์สำหรับการทำงานของการเคลื่อนไหวเว็บ แต่ถ้าคุณต้องการเจาะลึกดูที่แหล่งข้อมูลด้านล่าง

ทรัพยากร

  • ภาพเคลื่อนไหวที่มีประสิทธิภาพสูงโดย Paul Lewis และ Paul Irish
  • ภาพเคลื่อนไหว CSS และประสิทธิภาพการเปลี่ยนภาพ: มองภายในเบราว์เซอร์โดย Max Vujovic
  • ภาพเคลื่อนไหวและประสิทธิภาพโดย Paul Lewis และ Sam Thorogood
  • ติดตั้งคุณสมบัติเฉพาะของคอมโพสิตเท่านั้นและจัดการการนับเลเยอร์โดย Paul Lewis
  • เคล็ดลับสำหรับ GPU Composite CSS โดย Sara Soueidan
  • แนะนำ CSS จะเปลี่ยน Property โดย Nick Salloum
  • การสร้างคุณสมบัติ CSS โดย MDN

March 1, 2018