Thứ Năm, 2 tháng 8, 2018

Điện thoại RAM trống nhiều có phải là tốt?


Vivo nghe nói sắp ra mắt chiếc điện thoại tới 10GB RAM, OnePlus 5T cũng có 8GB, và nhiều smartphone khác trên thị trường hiện tại cũng đang dừng ở mức 4GB hay 6GB. Tại sao mức RAM phải càng ngày càng tăng lên, và liệu các nhà sản xuất có phải đơn thuần tăng RAM chỉ nhằm mục đích có thêm dung lượng trống để bạn chạy những thứ "đa nhiệm" hay không?

RAM là gì?

Nếu bạn chưa biết thì RAM là từ viết tắt của Random Access Memory, nó dùng để chứa dữ liệu của các ứng dụng đang chạy bên cạnh phần nhân của hệ điều hành. Người ta dùng RAM cho những thứ này là vì tốc độ đọc ghi của nó rất rất nhanh, nhanh hơn nhiều lần so với ổ SSD hay HDD hay thẻ nhớ. Ngay cả ổ SSD hiện nay cũng chưa nhanh bằng RAM, sắp tới thì có thể nhưng đường còn xa lắm và chi phí cho loại RAM đó cũng không rẻ chút nào. Đặc tính của RAM là khi mất điện thì dữ liệu cũng mất theo, do đó nó không được sử dụng để làm ổ lưu trữ vĩnh viễn (persistent storage) như SSD hay thẻ nhớ.

Bản thân CPU trong điện thoại của bạn cũng đã có bộ nhớ riêng, gọi là register và cache. Register nằm ngay gần nhân CPU và có tốc độ nhanh khủng khiếp nhưng dung lượng của nó thường chỉ vào khoảng chục đến trăm KB, nó tồn tại để đưa dữ liệu ra vào CPU. Sau đó đến cache, cũng có tốc độ rất nhanh, nhưng vẫn không có dung lượng đủ lớn như RAM. Ví dụ, Snapdragon 835 có 2MB cache cho các nhân hiệu năng cao và 1MB cache cho các nhân tiết kiệm điện.

Đang tải memory_hierarchy.jpg…
Cơ cấu truy xuất dữ liệu của máy tính hiện đại. Từ trên xuống dưới tốc độ giảm dần, chi phí giảm dần nhưng dung lượng tăng dần. HDD, SSD có dung lượng to nhất là vì thế.​

Khi CPU chạy tính toán, đầu tiên nó sẽ lấy dữ liệu trong register trước. Nếu trong register không có dữ liệu mà CPU cần, nó sẽ ra lệnh lấy dữ liệu từ cache. Nếu cache không có nữa thì đi ra RAM, RAM không có mới ra tới ổ SSD / HDD / bộ nhớ trong nói chung. Cứ đi ra ngoài 1 lớp thì tốc độ càng chậm đi, thời gian xử lý càng lâu hơn, và RAM cần phải nhanh chứ không bạn sẽ phải chờ... mút chỉ.

Thôi, cái này giới thiệu cho anh em biết sơ sơ vậy thôi, quay trở lại RAM nè. Thứ bạn cần nhớ ở RAM có thể tóm gọn trong 4 dấu chấm sau:
  • RAM dùng để chứa dữ liệu tạm thời, mất điện thì nó sẽ mất
  • RAM có tốc độ đọc ghi cực nhanh
  • Trên RAM vừa có dữ liệu của hệ điều hành, vừa có dữ liệu của các app đang chạy
  • Điều này đúng cho gần như mọi máy tính cá nhân mà loài người trên Trái Đất đang sử dụng, và điện thoại hay máy tính bảng cũng không ngoại lệ.
Android sử dụng RAM như thế nào?

Ở trên là nguyên lý hoạt động chung cho mọi máy tính và hệ điều hành, còn giờ chúng ta sẽ tìm hiểu kĩ hơn về cách mà Android khai thác RAM trên thiết bị của bạn. Nó bao gồm những phần chính như sau:

Kernel Space: Android được làm ra dựa trên nhân Linux, và kernel là một loạt các file được nén lại, khi boot máy lên nó sẽ được giải nén vào RAM. Phần kernel này giúp Android chạy được, hiểu được phần cứng đang cần gì, phần mềm cần gì, bạn cần gì và đáp ứng cho đúng. Khu vực chứa dữ liệu của kernal trên RAM gọi là kernel space.

RAMdisk: có một số file và folder trong Linux không tồn tại, không phải là hàng "thật". Nó là những file "ảo" được tạo ra trong quá trình boot và chứa các thông tin như dung lượng pin còn lại, tốc độ CPU... Với Android, thư mục /proc là một trong những nơi chứa các file ảo này, và /proc (cũng như các folder tương tự) được ghi vào RAM.

Dữ liệu mạng di động: Số IMEI, cấu hình bộ thu nhận sóng... được lưu trong một con chip gọi là NVRAM (Non-Volatile RAM, là RAM nhưng khi tắt máy, khi mất điện thì không bị mất dữ liệu). Khi bạn bật máy lên, những dữ liệu này được chép từ NVRAM sang RAM để truy xuất nhanh hơn cũng như phục vụ cho việc khởi động của hệ điều hành.

GPU: đa số bộ xử lý đồ họa trên di động hiện tại dùng RAM làm bộ nhớ cho nó, không như các "card đồ họa rời" thường có bộ nhớ riêng.

Dung lượng của 4 phần trên cộng lại là phần mà hệ thống dùng của RAM, phần dung lượng trống còn lại để dành cho các app của người dùng. Đây cũng là lý do vì sao RAM của máy bạn tuy ghi trên bảng cấu hình là 4GB nhưng phần trống thật sự chỉ khoảng 2-3GB tùy thiết bị. Ngoài ra, nhà sản xuất vẫn có thể tinh chỉnh phần dung lượng trống này tùy theo ý muốn của họ, ví dụ họ có thể bổ sung thêm một số tính năng đặc thù nào đó và muốn đảm bảo nó chạy tốt chẳng hạn. Thiết lập này gọi là minfree.

RAM không dùng là RAM uổng phí

Trên máy tính Windows của bạn, Microsoft viết hệ điều hành của mình theo kiểu để RAM trống càng nhiều càng tốt. Khi một app mới mở ra, nó sẽ chiếm một phần của RAM, Windows sẽ cho phép nó sử dụng phần RAM app yêu cầu mà không đòi hỏi gì thêm.

Tuy nhiên, Linux nói chung, Android nói riêng (và cả macOS, iOS của Apple nữa) lại hoạt động theo cách giữ app và dữ liệu trong RAM. Hệ điều hành cứ giữ như vậy cho đến khi có một app khác đòi RAM để nó hoạt động. Lúc này, hệ điều hành sẽ đánh số ưu tiên cho từng app dựa trên loại ứng dụng, cách mà ứng dụng sẽ xài tài nguyên, công việc mà nó làm là gì, các hàm nó gọi lên từ Android... Những app có mức độ ưu tiên thấp nhất sẽ bị đóng trước, giải phóng RAM và nhường phần RAM này cho app mới.

Đang tải oneOPlus_5T.jpg…

Nếu không có app nào đòi RAM, những ứng dụng đang chạy sẽ được giữ hoài trong RAM để khi bạn cần là nó có sẵn, không phải khởi chạy lại từ đầu. Việc bạn để RAM trống nhiều tức là các app của bạn bị đóng nhiều, và bạn sẽ mất thời gian hơn, tốn nhiều pin hơn khi cần sử dụng lại chúng.

Cái quan trọng không phải là RAM còn trống bao nhiêu, mà là phần RAM app được sử dụng là bao nhiêu. Đoạn này sẽ được thiết lập tùy theo nhà sản xuất, quay trở lại vụ minfree như mình đã nói ở trên. Nếu nhà sản xuất nhét quá nhiều thứ của riêng họ và cài đặt phần dung lượng RAM mà app được phép sử dụng thấp thì lúc đó bạn sẽ thấy các app của mình bị load lại nhiều hơn.

Máy có nhiều RAM hơn thì có lợi gì cho bạn?

Chiếc điện thoại Android đầu tiên, T-Mobile G1, chỉ có 192MB RAM mà thôi. Trong khi đó, chiếc Pixel 2 có tới 4GB RAM, tức là gấp 22 lần.

Hiện tại, mức RAM 8GB hay 10GB có vẻ như đang "quá hớp" so với đa số những chiếc điện thoại Android bình thường. Điện thoại Pixel, Nexus hay Android Go giá rẻ chỉ cần 1,2GB đến 2GB trống sau khi khởi động xong là đã sống khỏe và chạy rất mượt, app ít khi bị đóng, mà có đóng thì cũng là app bạn đã xài từ lâu rồi và sẽ hợp lý để khởi động lại. Một chiếc Galaxy S8 cũng có thể chạy ngon ở mức RAM này, nhưng Samsung vẫn tăng RAM cho thiết bị của mình để dành cho các app hệ thống hoặc launcher, từ đó tăng độ phản hồi của giao diện.

Những chiếc điện thoại mới như Note 8, LG V Series và nhiều mẫu khác có trang bị thêm AI, camera kép, xử lý ảnh thông minh, xử lý hình ảnh 3D thời gian thực... thì cần nhiều RAM hơn nữa vì chúng phải xử lý nhiều việc hơn và nặng hơn, nhất là về mặt hình ảnh hay video. Các tác vụ về xử lý data cũng xài kha khá RAM. Hay như tính năng DeX của Samsung dùng điện thoại làm máy tính, khi đó lại cần RAM cho chuyện khác nên việc hãng tăng RAM không phải là điều gì quá khó hiểu.

Đang tải RAM_6GB.jpg…

Ngoài ra, RAM hiện tại không đắt, khi mua số lượng lớn thì một con chip RAM chỉ tốn có vài đô la mà thôi. Nếu nhà sản xuất có thể bổ sung được thì họ cứ làm, một mặt sẽ giúp trải nghiệm của bạn ngon hơn, mặt khác làm cấu hình của điện thoại đẹp hơn và dễ cạnh tranh hơn. Ở các thị trường mới nổi như Trung Quốc, Ấn Độ và cả Việt Nam, RAM nhiều được cho là sẽ dễ bán máy hơn.

Nhưng ngược lại, việc có thêm RAM (và tài nguyên hệ thống nói chung) lại khiến nhà sản xuất lười tối ưu phần mềm của mình. Bạn nào làm lập trình cũng hiểu, việc code sao cho phần mềm của bạn chạy là chuyện dễ, code sao mà nó vừa chạy nhanh vừa xài ít tài nguyên là chuyện cực khó, thậm chí có thể xem như là một nghệ thuật. Về phần này, Google và Apple đang làm cực kì tốt, nhưng đa số các OEM bên thứ ba thì không. Điện thoại Pixel nào có cần RAM nhiều, mà vẫn chạy trên cả tuyệt vời đấy thôi.

Chốt: RAM nhiều thì tốt thôi, nhưng đừng để RAM trở thành yếu tố duy nhất bạn suy nghĩ đến khi mua điện thoại. Giờ chúng ta còn phải quan tâm tới màn hình, tới pin, tới camera và nhiều tính năng phụ thêm khác nữa. À, bạn cũng không cần phải dọn RAM gì đâu, tự hệ điều hành đã làm cho bạn rồi, bỏ thói quen đó đi nhé.

Không có nhận xét nào:

Đăng nhận xét