Sự cố khi hiểu bộ nhớ không hoạt động trong MacOSX


8

Tôi nghĩ rằng tôi đã hiểu cách MacOSX quản lý bộ nhớ, nhưng gần đây tôi đã gặp khó khăn bởi hiệu suất của nó. Đây là tình huống:

  1. Tôi có một hệ thống Core i7 hoàn toàn mới với bộ nhớ vật lý 8GB chạy MacOSX 10.6.7. Có một vài Ứng dụng đang chạy thường xuyên chiếm một số bộ nhớ trong Safari Safari, Mail, Xcode, Terminal, v.v.
  2. Tôi cần chạy song song ba tiến trình 64 bit, mỗi tiến trình sử dụng khoảng 2000M bộ nhớ thực.
  3. Mặc dù bộ nhớ có dây vẫn ở dưới 1000M (tức là tôi có sẵn hơn 7000M cho các quy trình), tôi thấy hoạt động phân trang nặng dẫn đến hiệu suất rất tệ từ ba quy trình sử dụng nhiều bộ nhớ mà tôi đã khởi chạy.
  4. Rõ ràng, tôi không dùng hết RAM có sẵn, vì bộ nhớ không hoạt động được báo cáo vẫn ở mức khoảng 2500M và bộ nhớ hoạt động không tăng trên 5000M.

Bất cứ ai cũng có thể cho tôi manh mối về lý do tại sao MacOSX không giải phóng bộ nhớ không hoạt động cho các quy trình cần nó, thay vào đó phải dùng đến phân trang? Ngoài ra, có cách nào thích hợp để ảnh hưởng đến việc quản lý bộ nhớ của hệ thống không?


Câu trả lời:


5

Tôi đã tìm thấy, trên máy của mình, Mac OS X hơi chậm để trang đúng thứ.

Bất cứ khi nào làm bất cứ điều gì đặc biệt là bộ nhớ đói, tôi sẽ thường bỏ một vài ứng dụng để giúp nó. Safari là một bộ nhớ lớn nếu nó đã chạy được một thời gian và đứng đầu danh sách các ứng dụng cần thoát. Trong trường hợp của tôi, đây là khi tôi cố chạy VMWare Fusion mà không có đủ RAM thực tế.

Bạn có thể biết điều này nhưng đây là một vài liên kết đến tài liệu của Apple mô tả việc sử dụng bộ nhớ và bộ nhớ ảo trên OS X:

http://support.apple.com/kb/ht1342

http://developer.apple.com/l Library / mac / # document / Permformance / Conceptionual /ManagingMemory / Articles / vềMemory.html

Dưới đây là lời giải thích được đưa ra: Danh sách không hoạt động chứa các trang hiện đang tồn tại trong bộ nhớ vật lý nhưng gần đây không được truy cập. Thật khó để có được một định nghĩa chính xác về điều này có nghĩa là gì nhưng dường như bao gồm bộ đệm hệ thống tệp cũng như bộ nhớ không hoạt động thực tế.

Bộ nhớ không hoạt động có lẽ là một điều khó xử lý trên HĐH điều khiển GUI tương tác, nơi người dùng có thể chọn chuyển sang bất kỳ ứng dụng nào đang chạy bất cứ lúc nào và cung cấp khả năng phản hồi trong tình huống này rất quan trọng .... nhưng nhược điểm của nó là trong tình huống như của bạn, HĐH không biết điều đúng đắn cần làm là gì.

Có thể thanh lọc (một số) bộ nhớ không hoạt động bằng cách sử dụng lệnh thanh lọc . Điều này có thể cần phải được cài đặt bằng cách cài đặt các công cụ CHUD nhưng bạn có thể đã cài đặt nó. Tôi chưa thử sử dụng lệnh thanh trừng nên YMMV ...

Tôi đã nói lan man một chút và có thể hoặc không thể trả lời câu hỏi của bạn. Sau khi viết tất cả những điều này ra, tôi tìm thấy một câu hỏi khác trên trang web này với nhiều thông tin tương tự cũng có thể giúp ích.


Cảm ơn! Các purgelệnh là chính xác những gì tôi đang tìm kiếm. Tôi đã tìm thấy các bài viết hỗ trợ trong KB của Apple, nhưng chúng không đặc biệt hữu ích.
Ventzi Zhechev

1

MacOS không giải phóng bộ nhớ không hoạt động, nhưng chỉ khi nó thực sự cần. "Bộ nhớ không hoạt động" đó thực sự có thể là bộ nhớ mà hạt nhân tin là ứng cử viên để phân trang - nhưng nó vẫn chưa quyết định, chờ thêm thời gian trôi qua mà không tham chiếu bộ nhớ không hoạt động (thay vào đó, nó tập trung vào phân trang bộ nhớ điều đó thực sự ít có khả năng được sử dụng lại sớm). Trong trường hợp như vậy, "thanh lọc" bộ nhớ không hoạt động thực sự sẽ khiến hiệu suất của bạn bị ảnh hưởng (vì những trang được sử dụng thường xuyên đó sẽ phải được đọc lại từ đĩa trước khi chương trình của bạn có thể tiếp tục thực thi).

purgerất hữu ích cho các nhà phát triển để mô phỏng các điều kiện khởi động của một ứng dụng-- ví dụ, để xem phải mất bao lâu để một ứng dụng chạy lần đầu tiên sau khi khởi động hoặc gián đoạn dài. Đối với người dùng thông thường, purgekhông hữu ích lắm (và thực sự sẽ làm giảm hiệu suất tạm thời).

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.