แอปต้องป้องกันการแก้ไขข้อมูลซ้ำเมื่อ client retry หลัง timeout จึงวินิจฉัยว่า นักพัฒนาสังเกตว่าเว็บแอปพลิเคชันมีปัญหา Memory Leak บน Server โดย RAM ค่อยๆ เพิ่มขึ้นเรื่อยๆ จนเซิร์ฟเวอร์ช้าลง สาเหตุที่เป็นไปได้มากที่สุดในฝั่ง Node.js คือข้อใด
กใช้ HTTPS แทน HTTP
ขมีการสร้าง Event Listener หรือ Closure ที่ไม่ได้ล้างออก ทำให้ Object ถูกอ้างอิงและ Garbage Collector ไม่สามารถคืน Memory ได้
คใช้ฐานข้อมูล MySQL แทน PostgreSQL
งใช้ CSS ที่ซับซ้อนเกินไปในฝั่ง Client
เฉลยอธิบาย
Memory Leak ใน Node.js มักเกิดจาก Event Listener ที่ไม่ได้ Remove, Global Variable ที่สะสม, Closure ที่ถือ Reference ไว้, หรือ Timer/Interval ที่ไม่ได้ Clear ทำให้ Garbage Collector ไม่สามารถเพิ่ม Memory คืนได้ ตัวเลือก A HTTPS ไม่เกี่ยวกับ Memory, ตัวเลือก C ชนิดฐานข้อมูลไม่ใช่สาเหตุ Memory Leak ใน Application Layer, ตัวเลือก D CSS อยู่ฝั่ง Client ไม่กระทบ Server Memory