Làm thế nào để giải phóng bộ nhớ vào chế độ ngủ đông đầy đủ?


10

Tương tự như thế này: Làm thế nào để "ngủ đông một quá trình" trong Linux / Windows?

Có phương pháp nào để ngủ đông một quá trình theo cách mà nó không lưu lại trong bộ nhớ không? Ví dụ: Nếu tôi không muốn sử dụng Firefox và không muốn đóng quy trình của nó và tôi cần bộ nhớ trống thì làm sao tôi có thể ngủ đông quá trình để bộ nhớ của Firefox được giải phóng?

Tôi cần giải pháp cho cả Windows và Linux!

Câu trả lời:


4

Nếu tôi không muốn sử dụng Firefox và không muốn đóng quy trình của nó và tôi cần bộ nhớ trống thì làm sao tôi có thể ngủ đông quá trình để bộ nhớ được Firefox giải phóng?

Đối với Windows, có Free Free Freezer .

Đối với Linux và Mac OS X, có CrypoPID , như được đề cập trong câu trả lời của yeedl .


Nếu bạn muốn đưa ra một giải pháp tùy chỉnh:

Nhìn vào process dumpingWindows, vd. ProcDump , tiếp tục nó với trình gỡ lỗi CLI từ WinDBG .

Nhìn vào core dumpingLinux, vd. cốt lõi , tiếp tục nó với trình gỡ lỗi CLI như GNU GDB .

Tôi đặt cược một giải pháp dựa trên phần mềm không liên quan đến trình gỡ lỗi là có thể, nhưng đó là cho Stack Overflow .


Bạn đang tìm kiếm một trường hợp sử dụng rất cụ thể, tại sao bạn không tạm ngưng và để nó hoán đổi?

Bạn sẽ dành nhiều thời gian hơn để khiến các quy trình của bạn chạy và tạm dừng ...

Tôi tin rằng bạn có thể tối ưu hóa quy trình làm việc của mình theo một cách khác sẽ liền mạch hơn.


5

Cả Windows và Linux / Unix đều cung cấp một cách để tạm dừng hoặc ngăn chặn một quá trình thực thi, bằng cách xóa nó khỏi danh sách các quy trình có thể chạy được.

Điều này không ảnh hưởng trực tiếp đến các trang bộ nhớ do một quá trình sở hữu, nhưng theo thời gian vì hệ thống chịu áp lực cho bộ nhớ, các trang đó sẽ là ứng cử viên tốt để trao đổi ra đĩa.

Cố gắng viết ra một quy trình vào đĩa để nối lại sau này sẽ không hiệu quả đối với bất cứ điều gì không tầm thường. Xử lý mở cho mạng và hệ thống cửa sổ sẽ thất bại ngay khi quá trình tiếp tục.


Nó cũng không hoạt động cho bất cứ điều gì tầm thường. :) +1
dùng541686

1
Những tay cầm mở đó chỉ được mở lại hoặc được lưu trữ cùng, vì vậy đó không thực sự là vấn đề ...
Tamara Wijsman

2

Tôi biết trong firefox bạn có thể lưu một phiên.

Trong Linux, điều này có thể được thực hiện với CrypoPID .

Câu hỏi này và câu hỏi này cố gắng trả lời nó cho Windows, nhưng tôi không thể tìm thấy một giải pháp tuyệt vời để lưu trạng thái ứng dụng vào một tệp như tôi đã làm cho linux.


1

Cho cửa sổ:

Tôi không biết cách nào để loại bỏ hoàn toàn một quá trình khỏi bộ nhớ mà không làm chết nó, nhưng bạn có thể cắt bộ công việc của nó bằng cách thu nhỏ cửa sổ chính của nó. Microsoft có một bài viết giải thích điều này: Bộ ứng dụng hoạt động được cắt bớt khi cửa sổ cấp cao nhất của nó được thu nhỏ .

Vì vậy, trước tiên hãy thu nhỏ (các) cửa sổ chính, sau đó tạm dừng quá trình như được đề xuất trong câu hỏi bạn đã liên kết .

Bạn có thể thực hiện cả hai với Process Explorer hữu ích .

  • Quá trình nhấp chuột phải, Cửa sổ -> Thu nhỏ
  • Nhấp chuột phải lần nữa, Đình chỉ.

1

Trên Windows, một số chương trình có thể trao đổi bộ nhớ chương trình "không sử dụng".
Một ví dụ về một sản phẩm có thể làm điều đó là Process Lasso thương mại .
Tuy nhiên, ngay cả Process Lasso cũng chống lại thực tiễn đó.

Từ sự thật về tối ưu hóa bộ nhớ Windows :

Tốt nhất là để lại việc quản lý bộ nhớ ảo cho Windows và không đưa nó vào tay bạn. Bất kỳ lợi ích từ các chương trình này là một ảo ảnh và tạm thời. Bạn phải chịu các hình phạt về việc phân trang lại bộ nhớ sớm hay muộn, ngay cả khi chương trình bạn chạy sau khi dọn dẹp tải nhanh hơn.

Bây giờ cũng liên quan đến Firefox, hãy xem việc sử dụng bộ nhớ Giảm của mozillaZine - Firefox , trong đó có rất nhiều lời khuyên về cách khám phá phần mở rộng bộ nhớ bị rò rỉ.

Ngoài ra còn có phần mở rộng Firefox Memory Fox :

Cố gắng giảm việc sử dụng Bộ nhớ RAM của trình duyệt nhằm thúc đẩy tăng bộ nhớ RAM khả dụng cho các ứng dụng khác xử lý các yêu cầu bộ nhớ RAM. Hy vọng, thúc đẩy mọi nỗ lực phục hồi và duy trì bộ nhớ.

Theo kinh nghiệm của tôi, phần mở rộng này chỉ hoãn lại sự phình to bộ nhớ không thể tránh khỏi của Firefox. Giải pháp thực sự duy nhất là thỉnh thoảng đóng Firefox để giải phóng bộ nhớ.


1

Bạn có thể gửi tín hiệu STOP đến các quy trình trong Linux. Một quá trình dừng lại giống như tạm dừng . Để tiếp tục nó gửi tín hiệu quá trình LIÊN HỆ. Để gửi tín hiệu bạn có thể làm điều này:

kill -STOP process_id

kill -CONT process_id

Một quá trình dừng lại sẽ được hoán đổi nếu hệ thống cần thêm bộ nhớ.

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.