หลายคนอาจเริ่มรู้สึกว่าเครื่อง Windows ของตัวเองเริ่มอืดลงเรื่อย ๆ ทั้งที่ยังไม่ได้ทำอะไรหนัก ๆ หรือไม่ได้ลงแอปเพิ่มมากนัก แต่รู้ไหมว่าปัญหาอาจไม่ได้อยู่ที่ฮาร์ดแวร์หรืออายุเครื่อง แต่อยู่ที่ “โค้ด” ที่ทำงานอยู่ในระบบต่างหาก
Matt Hamrick วิศวกรระดับอาวุโสของ Microsoft ออกมาเล่าผ่านบล็อกว่า เขาพบปัญหาเครื่องหน่วงที่มีต้นเหตุมาจากโค้ดของแอปที่เขียนด้วย .NET โดยเฉพาะการตั้งค่าพารามิเตอร์ reloadOnChange: true ผิดที่ผิดทาง ซึ่งทำให้เกิดปัญหา memory leak โดยไม่รู้ตัว

ค่าดังกล่าวมีหน้าที่ให้แอปคอยสังเกตไฟล์คอนฟิก และรีโหลดข้อมูลใหม่โดยอัตโนมัติถ้ามีการเปลี่ยนแปลง ฟังดูเหมือนจะสะดวก แต่ถ้าถูกเรียกใช้บ่อย ๆ ในส่วนของโค้ดอย่าง controller หรือ middleware ที่ทำงานซ้ำ ๆ ก็จะทำให้หน่วยความจำถูกใช้สะสมไปเรื่อย ๆ จนแรมเต็ม แอปช้า หรือแม้แต่ล่มทั้งระบบได้เลย
Matt พบปัญหานี้จากการวิเคราะห์ memory dump ด้วยเครื่องมือดีบั๊กอย่าง WinDbg และบอกว่านี่ไม่ใช่ปัญหาเฉพาะกับ .NET 7 เท่านั้น แต่โค้ดที่เขียนผิดแนวแบบนี้สามารถสร้างปัญหาได้ในหลายเวอร์ชันของ .NET ที่ยังใช้งานอยู่ในปัจจุบัน
เรื่องนี้กลายเป็นตัวอย่างชัดเจนว่า บางครั้งที่เครื่องเราช้า ไม่ได้หมายความว่าต้องเปลี่ยนเครื่องใหม่เสมอไป เพราะซอฟต์แวร์ที่ทำงานอยู่เบื้องหลังต่างหากที่อาจเขียนมาไม่ดีพอ หรือรั่วหน่วยความจำโดยเราไม่รู้ตัว

ที่น่าสนใจคือ มันสอดคล้องกับบทความอีกชิ้นที่ตั้งชื่อไว้ได้แสบสันว่า “Sloppy software is why you think you need new hardware” หรือแปลตรง ๆ ว่า “ซอฟต์แวร์ห่วย ๆ คือเหตุผลที่ทำให้คุณคิดว่าต้องเปลี่ยนเครื่อง”
และในช่วงนี้ Microsoft ก็ออกมาเตือนเรื่องการสิ้นสุดการสนับสนุน Windows 10 ด้วย โดยระบุว่าอุปกรณ์หลายรุ่นไม่สามารถอัปเกรดเป็น Windows 11 ได้ หากไม่ตรงตามสเปกขั้นต่ำ ซึ่งทำให้บางคนเริ่มหันกลับไปใช้ Windows 8.1 เพราะรู้สึกว่าเบาและเร็วกว่า แม้ว่าจะไม่มีแพตช์อัปเดตความปลอดภัยให้แล้วก็ตาม
ใครที่รู้สึกว่าเครื่องอืดลงผิดปกติ อาจลองมองย้อนดูว่าเป็นเพราะแอปหรือซอฟต์แวร์บางตัวหรือเปล่า เพราะบางที “โค้ดที่เขียนไม่ดี” อาจเป็นตัวการตัวจริงที่ทำให้คุณต้องเสียเงินซื้อเครื่องใหม่โดยไม่จำเป็นก็ได้
ที่มา : Neowin
Comment