จำกัด การใช้ RAM ใน Chrome หรือไม่


22

เมื่อเปิดแท็บไว้หลายแท็บใน Google Chrome เป็นเวลาหลายชั่วโมง / วันฉันสังเกตว่าบางหน้าจบลงด้วยการใช้ RAM จำนวนมากจนถึงจุดที่ระบบปฏิบัติการทั้งหมด (XP) ไม่ตอบสนองเนื่องจากการเพจ เมื่อฉันโชคดีในที่สุดฉันก็สามารถบุ๊กมาร์กรายการ URL ที่เปิดอยู่ปิด Chrome และเริ่มต้นใหม่อีกครั้ง เมื่อฉันไม่ฉันต้องฆ่า Chrome และหวังว่าจะสามารถกู้คืนรายการ URL ที่เปิดอยู่ได้

  • ทำไมถึงเป็นอย่างนั้น? หน่วยความจำรั่วในปลั๊กอินหรือไม่
  • มีวิธีการกำหนดค่า Chrome หรือไม่เพื่อให้แท็บ / หน้าเดียวไม่สามารถใช้งานได้เกินจำนวน RAM ที่กำหนดไว้

ขอขอบคุณ.


คุณมี RAM เท่าใด
Baarn

@OverTheRainbow - ทำไมไม่พิจารณาเลื่อนหน้า - chrome.google.com/webstore/detail/…
PeanutsMonkey

ฉันมี 4GB ซึ่งเพียงพอยกเว้นเมื่อบางเว็บเพจจบลงด้วยการคว้า 500MB ขอบคุณสำหรับลิงค์ใน Page Snooze และ Session Buddy
OverTheRainbow

คำตอบ:


-2

ฉันคิดว่าคุณควรเลือกซื้อ RAM ให้มากที่สุดเท่าที่ระบบปฏิบัติการของคุณจะจัดการได้ คุณไม่ควร จำกัด การใช้ RAM ของ Chrome เพราะจะเป็นการทำลายประสบการณ์การท่องเว็บของคุณ สมมติว่าคุณใช้คอมพิวเตอร์ในการท่องอินเทอร์เน็ตเป็นส่วนใหญ่คุณควรปล่อยให้ Chrome ได้รับทรัพยากรทั้งหมดที่จำเป็นเพื่อมอบประสิทธิภาพที่คุณต้องการให้คุณ "สนุก" กับการเรียกใช้แท็บเหล่านั้นในเวลาเดียวกัน

ฉันไม่คิดว่าจะมีวิธี จำกัด การใช้ RAM ของแต่ละแท็บ แต่คุณสามารถ จำกัด การใช้งานของ Chrome ได้ทั้งหมด ดูนี่:

/programming/192876/set-windows-process-or-user-memory-limit

ฉันจะไม่ทำอย่างนั้นถ้าฉันเป็นคุณถ้าฉันต้องการท่องเว็บที่ราบรื่น


16
นั่นไม่ใช่วิธีการแก้ปัญหาเมื่อคุณไม่สามารถควบคุมเนื้อหาของคอมพิวเตอร์ที่คุณใช้งานได้ (เช่นคอมพิวเตอร์ที่ใช้งาน)
Gnoupi

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

4
Chrome กิน RAM ให้มากที่สุดเท่าที่จะทำได้ดังนั้นการเพิ่ม RAM ให้มากขึ้นจะเหมือนกับการใส่ไม้เข้าไปในกองเพลิง
JDuarteDJ

5
@WikiWitz คุณประเมินว่า Chrome Chrome กินน้อยเกินไป ฉันมี RAM จริง 16 GB และยังไม่เพียงพอ
Pacerier

2
"สมมติว่าคุณใช้คอมพิวเตอร์ของคุณเพื่อท่องอินเทอร์เน็ตเป็นส่วนใหญ่" - นั่นเป็นเรื่องที่สำคัญมาก ไม่ใช่ทุกอย่างที่เป็น Chromebook
Piskvor

12
  1. ฉันเขียนโปรแกรม Python 2.5 ซึ่งฆ่า renderers ของ chrome เมื่อพวกเขาใช้หน่วยความจำเกินจำนวนที่กำหนดไว้ watchผมใช้โปรแกรมนี้อยู่ภายใต้ (โปรดทราบว่าใช้โมดูลpsutilซึ่งไม่รวมอยู่ใน Python)

    import sys, os, psutil
    
    if len(sys.argv) == 2:
        try:
            limit = int(sys.argv[1])
        except:
            limit = 200 # default 200MB
    else:
        limit = 200
    
    uid = os.getuid()
    for p in psutil.get_process_list():
        try:
            if (p.name == 'chrome' and any('type=renderer' in part for part in p.cmdline)
               and p.uid == uid):
                m = p.get_memory_info()
                #print p.pid,m, m.rss / 1024 / 1024, m.vms / 1024 / 1024
                if (m.rss / 1024 / 1024) > limit: # kill if rss is greater than limit
                    print 'Killed', p.pid
                    p.kill()
        except psutil.error.NoSuchProcess:
            pass
        except psutil.error.AccessDenied:
            pass
    
  2. ฉันพึ่งพาSession Buddyเพื่อกู้คืนแท็บที่เปิดอยู่เมื่อ chrome ไม่สามารถกู้คืนได้


Chrome จัดการกับตัวเรนเดอร์ที่ถูกฆ่าได้อย่างไร แท็บแสดงพฤติกรรมแบบใดหลังจากที่ตัวแสดงภาพถูกฆ่า โอ้ฉันเพิ่งเห็นความคิดเห็นเซสชันบัดดี้ของคุณดังนั้นหมายความว่า Chrome ไม่สามารถกู้คืนได้ในบางครั้งไม่เป็นไร สิ่งนี้เกิดขึ้นบ่อยไหม? นี่มันเรียบร้อยจริงๆขอบคุณ!
Matthew

1
@Human แท็บที่ใช้กระบวนการเรนเดอร์ที่ถูกฆ่ากลายเป็นแท็บที่ขัดข้อง แต่สคริปต์ข้างต้นทำงานได้ดีกับ Chrome 12 ในรุ่นที่ใหม่กว่า แต่ก็ยังฆ่าส่วนขยายที่ไม่เหมือนกับใน Chrome 12 นั้นทำงานในกระบวนการเรนเดอร์แทนที่จะทำงานในส่วนขยาย
Dan D.

@Human มันเป็นไปได้ที่จะสูญเสียแท็บสุดท้ายถ้าคุณล้มเหลวที่จะคลิกเรียกคืน แม้ว่าคุณจะมีLast Tabsไฟล์อยู่ก็ตามคุณจะไม่สามารถกู้คืนแท็บจากไฟล์นั้นได้ ฉันพยายามที่จะกำหนดรูปแบบและแยก URL จากมันเมื่อนานมาแล้ว มันไม่ประสบความสำเร็จ และฉันมีความเชื่อถือใน SQLite มากกว่าในรูปแบบไบนารีที่ Chrome ใช้ในการจัดเก็บแท็บของเซสชันปัจจุบันซึ่งเป็นเหตุผลที่ SB ดีกว่า
Dan D.

@DanD. สคริปต์นี้ปลอดภัยหรือไม่ มันจะทำให้ Chrome พังทั้งตัวหรือไม่
Pacerier

@Pacerier ใช่ยกเว้นเมื่อ Chrome ยังอยู่ในขั้นตอนการโหลดแท็บที่ล่าช้าหลังจากรีสตาร์ทก็ไม่ใช่
Dan D.

4

สิ่งเดียวที่ฉันได้เห็นวันที่สามารถทำเช่นนี้คือการทำงานโครเมี่ยมภายในภาชนะและจำกัด ตู้คอนเทนเนอร์แกะ

อย่างไรก็ตามเรื่องนี้มีคำเตือนสำคัญ ๆ

  • การใช้งานโครเมี่ยมนั้นซับซ้อนโดยการติดตั้งและการเปิดตัว dockerize

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

  • คุณจะเร่ง gpu หลวมแน่นอน

  • การรับเสียงให้ทำงานนั้นซับซ้อน แต่จัดการในรูปแบบคอนเทนเนอร์ที่เชื่อมโยง

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

แต่ท้ายที่สุดมันก็ใช้งานได้

ฉันสนใจที่จะใช้ขีด จำกัด ram เหล่านี้กับแอพ Electron Shell ซึ่งไม่มีภาพนักเทียบท่าที่สร้างไว้ล่วงหน้าเพื่อซ่อนไว้สำหรับคุณ


ปิดหัวข้อ แต่ฉันต้องการที่จะทราบว่า Firefox เป็นอย่างดีประพฤติบนฮาร์ดแวร์ จำกัด แต่ฉันไม่คิดว่าคำตอบที่แท้จริง


ฉันควรอัปเดตคำตอบนี้เพื่อบอกเพิ่มเติมเกี่ยวกับวิธีที่คอนเทนเนอร์เป็นเพียงส่วนต่อประสาน cgroup คุณสามารถใช้กลุ่มcgเพื่อทำสิ่งเดียวกัน
ThorSummoner

1

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

วิธีการรักษาที่ดีที่สุดที่ฉันพบคือการฆ่าเว็บเพจและโหลดซ้ำ AFAIK ไม่มีวิธี จำกัด ปริมาณ RAM ที่หน้าเว็บใช้


1

ใช้ส่วนขยาย TabsOutliner - มันจะช่วยให้คุณสามารถ "ปิด" แท็บโดยไม่ต้องลบออกจากบริบทและรายการเซสชันปัจจุบันของคุณ มีประโยชน์มาก.

แท็บส่วนขยาย Outliner


0

ฆ่ากระบวนการแท็บที่ใช้หน่วยความจำจำนวนมาก (ฉันสังเกตว่ามีไฟล์ใด ๆ ที่มีแนวโน้มว่าจะใช้ 500MB +) คุณสามารถโหลดแท็บที่ตายแล้วในภายหลังเมื่อคุณต้องการทำงานในแท็บเหล่านั้นต่อ


0

TabMemFreeจะระงับแท็บที่ไม่ใช้งานโดยอัตโนมัติ คุณสามารถกำหนดระยะเวลาก่อนที่จะหยุดแท็บที่ไม่ใช้งานด้วยอย่างน้อย 15 นาที คุณสามารถสั่งให้ละเว้นแท็บที่ถูกตรึง

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

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