เหตุใดหน้าเว็บจึงใช้ RAM มาก


25

หลังจากเปิดหน้าเครืองใน Chrome คอมพิวเตอร์ของฉันก็ซบเซา ตัวจัดการงานของ Windows แสดงให้เห็นว่าบางหน้าใช้ RAM จำนวนมาก:

ป้อนคำอธิบายรูปภาพที่นี่

  1. ทำไมพวกเขาถึงใช้ RAM มาก?
  2. มีวิธีรู้หรือไม่ว่า RAM แต่ละหน้าใช้เวลาเท่าใด

ขอขอบคุณ.


9
Chrome มีตัวจัดการงานของตัวเองด้วย และป้อนchrome://memory-redirect/ถ้าคุณพร้อมสำหรับบางอย่างเพิ่มเติม
slhck

1
ขอบคุณสำหรับทิป. ปรากฎว่า Chrome ไม่ได้ใช้กระบวนการเดียวสำหรับหนึ่งแท็บ / หน้า: กระบวนการสามารถชี้ไปที่หนึ่งแท็บและทวีคูณเว็บเพจดังนั้นฉันไม่สามารถบอกได้ว่ากำลังใช้ RAM เท่าใด
OverTheRainbow

คำตอบ:


23

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

นี่คือทีมพัฒนาโครเมี่ยมกล่าวถึงการที่ดีและไม่ดีของหน่วยความจำแบบนี้ใช้ใน Chrome

และที่นี่คุณสามารถกำหนดค่า Chrome ให้ใช้โมเดลหน่วยความจำสำรองที่มีการแลกเปลี่ยนที่หลากหลายรวมถึงโหมดกระบวนการเดียว "firefox style": http://dev.chromium.org/developers/design-documents/process-models


8
  1. เหตุใดหน้าเว็บจึงใช้ RAM มาก

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

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

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

อีกเหตุผลที่หน้าเว็บใช้ RAM เป็นจำนวนมากทุกวันนี้หน้าเว็บส่วนใหญ่มี JavaScript และ Flash จำนวนมากซึ่งทำให้ทั้ง CPU และ RAM หนัก (ซึ่งหมายความว่าระบบเก่าไม่สามารถท่องอินเทอร์เน็ตได้อย่างสะดวกสบายดังนั้นจึงไม่มี อีกต่อไปเช่น "ใช้แล้วเก่า แต่ดีสำหรับการดูระบบ") ยิ่งไปกว่านั้นปลั๊กอินและส่วนขยาย (และอาจเป็นไปได้ว่า Chrome เอง) อาจทำให้หน่วยความจำรั่วหลังจากผ่านไประยะหนึ่งซึ่งเป็นการเพิ่มการใช้งานหน่วยความจำให้ทันเวลา

  1. มีวิธีรู้หรือไม่ว่า RAM แต่ละหน้าใช้เวลาเท่าใด

น่าเสียดายที่ไม่มีวิธี (รู้จัก / ง่าย) ในการดูการใช้งานหน่วยความจำต่อหน้า วิธีที่ใกล้เคียงที่สุดคือกดShift+Escหรือคลิกขวาที่แถบแท็บและเลือกตัวจัดการงานเพื่อดูการใช้หน่วยความจำต่อกระบวนการ

สิ่งหนึ่งที่คุณสามารถลองได้คือเปิดแต่ละหน้าในกระบวนการใหม่ (โดยใช้หนึ่งในวิธีที่กล่าวมาข้างต้น) จากนั้นเปรียบเทียบ


ขอบคุณฉันกำลังจะถามคำถามสำหรับคำตอบนี้ ฉันไม่อยากจะเชื่อเลยว่าหน้าเว็บธรรมดา ๆ จะมีขนาด 300MB ได้อย่างไร
Federico Ponzi

1

ลองใช้เครื่องมือเครื่องมือเครื่องมือสำหรับนักพัฒนาตรวจสอบ

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


ฉันไม่ได้พูดถึงหน้าเว็บของฉัน แต่เป็นหน้าเว็บที่ฉันกำลังอ่านบนอินเทอร์เน็ตและท้ายที่สุดก็ดูด RAM มากจนต้องบุ๊กมาร์ก Chrome ใหม่แล้วเปิดหน้าเว็บอีกครั้ง
OverTheRainbow
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.