Hạn chế sử dụng RAM trong Chrome?


22

Khi để một số tab mở trong Google Chrome hàng giờ / ngày, tôi nhận thấy rằng một số trang cuối cùng sử dụng lượng RAM lớn, đến mức toàn bộ HĐH (XP) trở nên không phản hồi do phân trang. Khi tôi may mắn, cuối cùng tôi cũng có thể đánh dấu danh sách các URL đang mở, đóng Chrome và bắt đầu lại; Khi tôi không, tôi chỉ đơn giản là phải giết Chrome và hy vọng tôi có thể khôi phục danh sách các URL đang mở.

  • Tại sao vậy? Rò rỉ bộ nhớ trong plugin?
  • Có cách nào để định cấu hình Chrome để một tab / trang duy nhất sẽ không sử dụng nhiều hơn một lượng RAM đã đặt không?

Cảm ơn bạn.


bạn có bao nhiêu RAM
Baarn

@OverTheRainbow - Tại sao không xem xét Trang Snooze - chrome.google.com/webstore/detail/iêu
PeanutsMonkey

Tôi có 4GB, thế là đủ trừ khi một số trang web kết thúc lấy 500MB. Cảm ơn các liên kết trên Trang Snooze và Phiên Buddy.
OverTheRainbow

Câu trả lời:


-2

Tôi nghĩ bạn chỉ nên chọn mua càng nhiều RAM càng tốt cho hệ điều hành của bạn. Bạn không nên giới hạn việc sử dụng RAM của Chrome vì nó sẽ phá hỏng trải nghiệm lướt web của bạn trên Web. Giả sử rằng bạn sử dụng máy tính để lướt Internet hầu hết thời gian, bạn nên để Chrome có được tất cả các tài nguyên cần thiết để cung cấp hiệu suất mà bạn muốn cho bạn "tận hưởng" khi chạy các tab đó cùng một lúc.

Tôi không nghĩ có một cách để hạn chế việc sử dụng RAM của mỗi tab riêng lẻ nhưng bạn có thể giới hạn hoàn toàn việc sử dụng Chrome. Nhìn đây:

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

Tôi thà không làm điều đó, nếu tôi là bạn, nếu tôi muốn lướt web trơn tru.


16
Đó không thực sự là một giải pháp khi bạn không kiểm soát nội dung của máy tính bạn đang sử dụng (tức là máy tính làm việc)
Gnoupi

trong trường hợp đó sẽ tốt hơn nếu có cách đặt 'mức độ ưu tiên' cho các tab được chọn (như tab hoạt động chiếm phần lớn bộ nhớ) vì với RAM hạn chế và với máy tính bạn không sở hữu thì người dùng là người dùng nên thích ứng (bằng cách giảm số lượng tab đang mở) sẽ phản tác dụng.
WikiWitz

4
Chrome ngốn nhiều RAM như vậy, vì vậy, việc thêm RAM cũng giống như đưa thêm củi vào lửa, nó sẽ đốt cháy nhiều hơn.
JDuarteDJ

5
@WikiWitz, Bạn đang đánh giá thấp RAM Chrome ăn bao nhiêu. Tôi có 16 GB RAM vật lý và vẫn chưa đủ.
Pacerier

2
"Giả sử rằng bạn sử dụng máy tính để lướt Internet hầu hết thời gian" - đó là một giả định chính . Không phải mọi thứ đều là Chromebook.
Piskvor

12
  1. Tôi đã viết một chương trình Python 2.5 để giết các trình kết xuất của chrome khi chúng sử dụng trên một lượng bộ nhớ. Tôi chạy chương trình này theo watch. (lưu ý rằng nó sử dụng mô-đun psutil không có trong 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. Tôi dựa vào Phiên Buddy để khôi phục các tab đang mở khi chrome không thể khôi phục chúng.


Chrome xử lý các trình kết xuất bị giết như thế nào? Hành vi nào tab hiển thị sau khi trình kết xuất của nó bị giết? Ồ, tôi vừa thấy bình luận Phiên Buddy của bạn, vì vậy điều đó có nghĩa là đôi khi Chrome không khôi phục được chúng, được thôi. Điều này có xảy ra thường xuyên không? Điều này thực sự gọn gàng, cảm ơn!
Matthew

1
@Human Các tab sử dụng quy trình kết xuất bị giết đó trở thành các tab bị lỗi. Nhưng mặc dù tập lệnh ở trên hoạt động tốt với Chrome 12 trong các phiên bản sau, nó cũng giết chết các tiện ích mở rộng không giống như trong Chrome 12 được chạy trong các quy trình kết xuất thay vì trong các tiện ích mở rộng.
Dan D.

@Human Có thể mất các tab cuối cùng nếu bạn không nhấp vào khôi phục . Ngoài ra ngay cả khi bạn có Last Tabstệp, không thể khôi phục các tab từ tệp đó. Tôi đã cố gắng xác định định dạng và trích xuất các URL từ nó một lần trước đây. Nó đã không thành công. Và tôi tin tưởng vào SQLite hơn ở định dạng nhị phân mà Chrome sử dụng để lưu trữ các tab của phiên hiện tại, đó là lý do tại sao SB tốt hơn.
Dan D.

@DanD., Kịch bản này có an toàn không? Nó sẽ kết thúc sự cố toàn bộ Chrome?
Pacerier

@Pacerier Có, ngoại trừ khi Chrome vẫn đang trong giai đoạn tải tab bị trì hoãn sau khi khởi động lại, thì không.
Dan D.

4

Điều duy nhất tôi thấy cho đến nay có thể làm điều này là chạy chrome bên trong một containerhạn chế ram container .

Tuy nhiên, điều này có một số cảnh báo lớn,

  • Chạy chrome rất phức tạp bởi trình tự khởi chạy và khởi chạy

  • đối với một, Chrome đã sử dụng các thùng chứa hạt nhân để sandbox các luồng của nó; vì vậy bạn phải chạy container với một loại đặc quyền gốc cho phép nó hoạt động. Điều này có thể được phá vỡ, và mô hình container được liên kết làm như vậy. (thực tế nó làm mọi thứ nó cần)

  • Bạn gần như chắc chắn sẽ mất khả năng tăng tốc gpu

  • làm cho âm thanh hoạt động là phức tạp, nhưng được xử lý trong mô hình container được liên kết.

  • Bất cứ điều gì khác mà bạn mong đợi sẽ xảy ra khi bạn làm mất hiệu lực bảo hành của mình, Chrome cực kỳ không thích được bảo không sử dụng nhiều ram hơn và sẽ hành động và nổi giận tương ứng.

Nhưng cuối cùng nó cũng hoạt động.

Tôi quan tâm hơn đến việc áp dụng các giới hạn ram này cho các ứng dụng Electron Shell không có hình ảnh docker dựng sẵn để chỉnh sửa chúng cho bạn.


Không có chủ đề nhưng tôi muốn lưu ý rằng Firefox hoạt động rất tốt trên phần cứng hạn chế, nhưng tôi không coi đó là một câu trả lời thực sự.


Tôi nên cập nhật câu trả lời này để nói thêm về cách các container chỉ là giao diện của nhóm, bạn có thể tự mình sử dụng các nhóm để thực hiện tương tự
ThorSummoner

1

Nó không nhất thiết phải là plugin. Lưu ý rằng các trang web không còn tĩnh. Một số trang web chỉ có một lượng hoạt động không đồng bộ không đáng kể đang diễn ra. Thêm vào hoạt động từ các plugin và bạn có một số ẩn số.

Biện pháp khắc phục tốt nhất mà tôi đã tìm thấy là giết trang web và tải lại. AFAIK, không có cách nào để giới hạn dung lượng RAM mà trang web sử dụng.


1

Sử dụng tiện ích mở rộng TabOutliner - nó sẽ cung cấp cho bạn cách dễ dàng "tắt" các tab mà không thực sự xóa chúng khỏi ngữ cảnh và danh sách phiên hiện tại của bạn. Rất hữu dụng.

Tiện ích mở rộng tab


0

Giết quá trình tab sử dụng số lượng lớn bộ nhớ (Tôi nhận thấy rằng mọi thứ với Flash đều có xu hướng sử dụng 500MB +). Bạn chỉ có thể tải lại các tab chết sau khi bạn muốn tiếp tục làm việc với chúng.


0

TabMemFree sẽ tự động tạm ngưng các tab không hoạt động. Bạn có thể xác định khoảng thời gian trước khi nó tạm dừng các tab không hoạt động, với tối thiểu 15 phút. Bạn cũng có thể hướng dẫn nó bỏ qua các tab được ghim.

Tab Wrangler là một tiện ích mở rộng khác để xem xét tự động tạm dừng các tab không hoạt động nếu bạn đang tìm kiếm thêm một chút kiểm soát. Giống như TabMemFree, bạn có thể xác định khoảng thời gian trước khi tab được coi là không hoạt động và đặt nó để bỏ qua các tab được ghim, nhưng bạn có tùy chọn bổ sung để khóa các tab bổ sung và đồng bộ hóa cài đặt tab giữa các máy tính khác nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.