ปรับปรุง 2015
ย้อนกลับไปในปี 2012 สิ่งนี้ไม่สามารถทำได้หากคุณต้องการรองรับเบราว์เซอร์หลัก ๆ ทั้งหมดที่ใช้งานอยู่ น่าเสียดายที่ตอนนี้ยังคงเป็นคุณลักษณะเฉพาะของ Chrome (ส่วนขยายที่ไม่ได้มาตรฐานwindow.performance
)
window.performance.memory
รองรับเบราว์เซอร์: Chrome 6+
2012 คำตอบ
มีวิธีค้นหาว่าหน้าเว็บใช้หน่วยความจำมากแค่ไหนหรือโดยแอปพลิเคชัน jquery ของฉัน ฉันกำลังมองหาโซลูชันรันไทม์ (ไม่ใช่แค่เครื่องมือสำหรับนักพัฒนา) เพื่อให้แอปพลิเคชันของฉันสามารถกำหนดการทำงานตามการใช้หน่วยความจำในเบราว์เซอร์ของผู้ใช้
คำตอบง่ายๆ แต่ที่ถูกต้องคือไม่มี ไม่ใช่ทุกเบราว์เซอร์ที่เปิดเผยข้อมูลดังกล่าวกับคุณ และฉันคิดว่าคุณควรทิ้งความคิดเพียงเพราะความซับซ้อนและความไม่ถูกต้องของไฟล์โซลูชัน"แฮนด์เมด"อาจทำให้เกิดปัญหามากกว่าที่จะแก้ได้
การนับองค์ประกอบ DOM หรือขนาดเอกสารอาจเป็นการประมาณที่ดี แต่อาจมีความคลาดเคลื่อนได้มากเนื่องจากจะไม่รวมการโยงเหตุการณ์ข้อมูล () ปลั๊กอินและโครงสร้างข้อมูลในหน่วยความจำอื่น ๆ
หากคุณต้องการยึดติดกับแนวคิดของคุณจริงๆคุณควรแยกเนื้อหาคงที่และไดนามิกออกจากกัน
เนื้อหาคงที่ไม่ขึ้นอยู่กับการกระทำของผู้ใช้ (หน่วยความจำที่ใช้โดยไฟล์สคริปต์ปลั๊กอิน ฯลฯ )
สิ่งอื่น ๆ ถือเป็นแบบไดนามิกและควรเป็นจุดสนใจหลักของคุณเมื่อกำหนดขีด จำกัด ของคุณ
แต่ไม่มีวิธีง่ายๆที่จะสรุปได้ คุณสามารถใช้การติดตามระบบที่รวบรวมข้อมูลเหล่านี้ทั้งหมด การดำเนินการทั้งหมดควรเรียกใช้วิธีการติดตามที่เหมาะสม เช่น:
วิธีตัดหรือเขียนทับjQuery.data
เพื่อแจ้งระบบติดตามเกี่ยวกับการจัดสรรข้อมูลของคุณ
ตัดการปรับแต่ง html เพื่อให้มีการติดตามการเพิ่มหรือลบเนื้อหาด้วย ( innerHTML.length
เป็นการประมาณที่ดีที่สุด)
หากคุณเก็บอ็อบเจ็กต์ไว้ในหน่วยความจำขนาดใหญ่ก็ควรตรวจสอบด้วย
สำหรับการผูกเหตุการณ์คุณควรใช้การมอบหมายเหตุการณ์และอาจถือได้ว่าเป็นปัจจัยที่ค่อนข้างตายตัว
อีกแง่มุมหนึ่งที่ทำให้ยากต่อการประมาณความต้องการหน่วยความจำของคุณอย่างถูกต้องคือเบราว์เซอร์ที่แตกต่างกันอาจจัดสรรหน่วยความจำแตกต่างกัน (สำหรับวัตถุ Javascript และองค์ประกอบ DOM)