Ứng dụng Metro trên Windows 8 sẽ tiết kiệm bộ nhớ khi chạy nền

Microsoft vừa đăng tải chi tiết về cách thức tiết kiệm bộ nhớ mà hãng áp dụng trên . Các ứng dụng theo phong cách Metro sẽ giải phóng RAM mỗi khi chúng không được trực tiếp sử dụng. Ví dụ, một chơi nhạc chạy dưới nền hoặc một chương trình gửi tin chat có thể dùng các hàm API về đa nhiệm để thực hiện công việc của mình, trong khi phần lớn các thành phần còn lại của chúng sẽ được tạm ngưng (suspended). Do đó, người dùng Windows 8 có thể chạy nhiều ứng dụng cùng lúc vì có dung lượng RAM trống khá lớn. Hơn thế nữa, tất cả ứng dụng Metro đều có thể phục hồi từ trạng thái suspended sang trạng thái hoạt động trong thời gian rất ngắn.

Trong bản Windows 8 Consumer Preview, mỗi khi hệ thống nhận thấy có sự thiếu hụt RAM, nó sẽ ghi các “phiên làm việc” của một ứng dụng Metro đã tạm ngưng lên ổ đĩa (SSD/HDD). Còn khi người dùng bắt đầu chạy lại ứng dụng, “phiên làm việc” sẽ được chuyển từ ổ đĩa sang lại RAM. Phương thức này khá giống với cách mà tính năng Hibernate hoạt động. Microsoft cho biết họ sẽ tiếp tục tối ưu hóa cách mà Windows 8 ghi và đọc dữ liệu để có thể đạt hiệu suất cao nhất có thể. Trong ví dụ ở video bên dưới, đã có thể giải phóng đến 250MB RAM bằng phương thức này.

“Phiên làm việc” (working set) là phần bộ nhớ vật lí (RAM) mà một tiến trình sử dụng ở một thời điểm nào đó. Ở đây chúng ta nói đến “phiên làm việc” riêng tư (private), tức là phần bộ nhớ vật lí duy nhất đại diện cho một tiến trình. Ngoài kiểu private ra còn có kiểu shared nhưng ở đây sẽ không đề cập đến. Các bạn lưu ý rằng một ứng dụng có thể có nhiều tiến trình hoạt động.

Để cho dễ hiểu, Microsoft đưa ra ví dụ sau:

Các ứng dụng được đánh dấu đỏ là những phần mềm Metro hiện đã chuyển sang chế độ chạy nền. Các bạn hãy để ý đến chữ Suspended. Lúc này, dung lượng RAM (nhìn vào cột Memory nhé) dao động từ 20MB đến hơn 60MB. Giờ thì người trình diễn sẽ mở thêm nhiều ứng dụng nữa để tạo trạng tái “thiếu hụt RAM”.

Sau quá trình xử lí, giờ đây cột Memory chỉ còn lại các ứng dụng tiêu thụ dưới 1MB RAM. Như vậy, các phần mềm khác sẽ có thêm tài nguyên hệ thống để hoạt động.

Giải thích thêm về quy trình lấy lại dung lượng bộ nhớ từ một ứng dụng Metro đã suspended, Microsoft cho biết có các bước sau:

Bước 1: Bộ phận quản lí tiến trình (Process Lifetime Manager) sẽ nhận biết khi nào thì dung lượng RAM trống bắt đầu xuống thấp và yêu cầu Bộ phận quản lí bộ nhớ (Memory Manager) làm trống cách working set của ứng dụng Metro đã suspended.

Bước 2: MM sẽ di chuyển trang nhớ từ working set của ứng dụng sang page list của hệ điều hành (page list là một danh sách các nội dung sẽ được ghi lên đĩa cứng để sau này dùng lại khi cần).

Bước 3: Các trang nhớ của working set trong page list sẽ được ghi không đồng thời lên đĩa thông qua các chính sách của MM.

 

Bước 4: Ngay cả sau khi working set được ghi lên đĩa, trang nhớ sẽ được loại bỏ khỏi page list. Thay vào đó, trang working set này sẽ di chuyển sang một danh sách khác chờ khác, gọi là “Standby List”. Phần được làm trống trong page list có thể tiếp tục dùng cho các ứng dụng khác. Trong trường hợp tiến trình lúc đầu đòi hỏi tài nguyên, nó sẽ nhanh chóng được di chuyển từ Standby List sang lại RAM.

Quá trình phục hồi một ứng dụng Metro từ trạng thái suspended cũng khá nhanh. Nếu bạn có cài Windows 8 Consumer Preview, bạn có thể thử nghiệm bằng cách mở thật nhiều ứng dụng theo phong cách Metro, sau đó bất ngờ chuyển sang một phần mềm nào có “phiên làm việc” rỗng.

Video trình diễn khả năng quản lí bộ nhớ mới trên Windows 8

Theo: Tinhte

Bài viết liên quan