บั๊กใน macOS Sequoia ทำให้เกิดความล่าช้าทั้งระบบในแอปยอดนิยมที่ใช้ Electron Framework รุ่นเก่า

ทีมชุมชน BigGo
บั๊กใน macOS Sequoia ทำให้เกิดความล่าช้าทั้งระบบในแอปยอดนิยมที่ใช้ Electron Framework รุ่นเก่า

บั๊กร้ายแรงใน macOS Sequoia (เวอร์ชัน 15.0) กำลังทำให้เกิดปัญหาประสิทธิภาพทั้งระบบสำหรับผู้ใช้ที่เรียกใช้แอปพลิเคชันยอดนิยมที่สร้างด้วย Electron framework รุ่นเก่า ปัญหานี้ส่งผลกระทบต่อแอปที่ใช้กันอย่างแพร่หลาย รวมถึง Visual Studio Code , Slack , Signal , Discord และอื่นๆ อีกมากมาย ทำให้เกิดความล่าช้าที่เห็นได้ชัดซึ่งส่งผลกระทบต่อระบบปฏิบัติการทั้งหมด

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

ผลกระทบอย่างแพร่หลายต่อแอปพลิเคชันยอดนิยม

รายงานจากชุมชนเผยให้เห็นถึงการแพร่กระจายอย่างกว้างขวางของบั๊กนี้ในซอฟต์แวร์ที่ใช้กันทั่วไป ผู้ใช้ได้ระบุแอปพลิเคชันที่ได้รับผลกระทบตั้งแต่เครื่องมือพัฒนาเช่น Visual Studio Code และ Cursor ไปจนถึงแพลตฟอร์มการสื่อสารเช่น Slack และ Signal รวมถึงซอฟต์แวร์สร้างสรรค์เช่น Figma แม้กระทั่งแอปพลิเคชันที่ไม่คาดคิดก็ติดอยู่ในปัญหานี้ โดยผู้ใช้ค้นพบว่า DaVinci Resolve มีส่วนประกอบ Electron อยู่ด้วย ซึ่งน่าจะใช้สำหรับเอกสารช่วยเหลือหรือหน้าจอเริ่มต้น

ปัญหานี้เน้นย้ำถึงปัญหาที่กว้างขึ้นเกี่ยวกับการบำรุงรักษาซอฟต์แวร์ในระบบนิเวศ Electron แอปพลิเคชันหลายตัวใช้เวอร์ชันของเฟรมเวิร์กที่ล้าสมัยอย่างมาก โดยบางตัวใช้เวอร์ชันที่ล้าหลังกว่าเวอร์ชันเสถียรปัจจุบัน 15 รุ่นหรือมากกว่า

แอปพลิเคชันที่ได้รับผลกระทบโดยทั่วไป:

  • Visual Studio Code (Electron 37.3.1)
  • Slack (Electron 38.1.2)
  • Signal (Electron 38.1.2)
  • Discord
  • Figma
  • Cursor (Electron 34.5.8)
  • DaVinci Resolve (Electron 36.3.2)
  • Docker Desktop (Electron 37.2.6)

สาเหตุทางเทคนิคและการแก้ไขที่มีอยู่

ทีม Electron ได้ระบุสาเหตุรากและปล่อยการแก้ไขในหลายเวอร์ชันของเฟรมเวิร์ก บั๊กเกี่ยวข้องกับการเรนเดอร์เงาหน้าต่างที่กระตุ้นให้เกิดการวาดระบบใหม่มากเกินไป เวอร์ชันที่แก้ไขแล้ว ได้แก่ Electron 36.9.2, 37.6.0, 38.2.0, 39.0.0 และทุกเวอร์ชันที่สูงกว่า 39

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

เวอร์ชัน Electron ที่แก้ไขแล้ว:

  • 36.9.2
  • 37.6.0
  • 38.2.0
  • 39.0.0
  • ทุกเวอร์ชันที่สูงกว่า 39.0.0

วิธีแก้ไขชั่วคราวและการตอบสนองของผู้ใช้

สำหรับผู้ใช้ที่ประสบปัญหาความล่าช้า มีวิธีแก้ไขชั่วคราวโดยการรันคำสั่ง terminal ที่ปิดเงาหน้าต่างสำหรับแอป Electron แม้ว่าจะแก้ปัญหาประสิทธิภาพได้ แต่ทำให้แอปพลิเคชันดูไม่ขัดเกลาทางภาพ

นี่คือเหตุผลที่คุณไม่ควรใช้ private APIs

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

คำสั่งแก้ไขชั่วคราว:

launchctl setenv CHROME_HEADLESS 1

หมายเหตุ: คำสั่งนี้จะปิดการใช้งานเงาของหน้าต่าง ทำให้แอปพลิเคชันดูไม่เรียบร้อยเท่าเดิม แต่สามารถแก้ไขปัญหาด้านประสิทธิภาพได้

ผลกระทบที่กว้างขึ้นสำหรับการพัฒนา macOS

เหตุการณ์นี้ทำให้เกิดคำถามเกี่ยวกับกระบวนการประกันคุณภาพของ Apple สำหรับการปล่อยระบบปฏิบัติการหลัก เนื่องจากความนิยมของแอปพลิเคชันที่ใช้ Electron บน macOS หลายคนในชุมชนนักพัฒนาคาดหวังว่าปัญหาความเข้ากันได้เช่นนี้จะถูกจับได้ในช่วงระยะเวลาทดสอบเบต้า

สถานการณ์นี้ยังเน้นย้ำถึงความตึงเครียดที่ดำเนินต่อไประหว่างผู้จำหน่ายระบบปฏิบัติการและเฟรมเวิร์กของบุคคลที่สามที่พึ่งพา APIs ที่ไม่มีเอกสาร แม้ว่า Apple จะเตือนอย่างชัดเจนเกี่ยวกับการใช้ private APIs เนื่องจากความไม่เสถียรที่อาจเกิดขึ้น แต่ลักษณะที่แพร่หลายของปัญหานี้แสดงให้เห็นว่าการพึ่งพาเหล่านี้ฝังลึกเข้าไปในระบบนิเวศซอฟต์แวร์มากแค่ไหน

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

อ้างอิง: Electron Apps Causing System-Wide Lag on Tahoe