VnReview
Hà Nội

Có thật Android tốn RAM hơn iOS?

Các điện thoại Android đầu bảng luôn có dung lượng RAM từ 2 đến 3 lần so với những chiếc iPhone cùng đời. Có phải sự chênh lệch này đồng nghĩa Android dùng tốn RAM hơn iOS?

Đến thời điểm này thì chiếc iPhone mạnh mẽ nhất, iPhone 7 Plus cũng chỉ được trang bị 3GB RAM, con số tương đương với nhiều smartphone Android tầm trung của năm 2017. Tuy nhiên hiệu năng và cả khả năng đa nhiệm của iPhone 7 Plus có thể dễ dàng vượt qua bất kỳ chiếc smartphone Android cao cấp nào. Phải chăng iOS đã tối ưu quá tốt so với cấu hình, hay nói cách khác là những chiếc smartphone Android dùng "tốn" RAM hơn so với iOS?

Video cho thấy hiệu năng vượt trội của iPhone 7 Plus so với chiếc Xiaomi Mi 5s sử dụng cấu hình đầu bảng của 2016 (chip Snapdragon 821 và RAM 4GB)

Đây là vấn đề được cây viết Gary Sims của Android Authority phân tích trong bài viết gần đây do VnReview.vn giới thiệu lại.

Đầu tiên, chúng ta sẽ nhìn lại dung lượng RAM của những smartphone đầu bảng (cả Android và iPhone) trong 4 năm qua. Có thể thấy các smartphone Android luôn có dung lượng RAM nhiều hơn iPhone ra cùng năm, ngoại trừ trường hợp chiếc Nexus 5X ra mắt năm 2015 có cùng 2GB RAM như iPhone 6s/6s Plus. Do đó bài viết này cũng sẽ so sánh khả năng sử dụng RAM của Nexus 5X và iPhone 7 (2GB RAM).

Có thật Android tốn RAM hơn iOS?

Trên cả Android và iOS, RAM được phân bổ cho cả các tác vụ của hệ điều hành và cho ứng dụng (phần RAM dành cho ứng dụng còn được gọi là pages). Một trong những quan niệm chưa chính xác là máy phải còn "nhiều RAM trống", tức là lúc nào cũng phải trống một lượng lớn RAM mới là tốt. Tuy nhiên thực tế là số lượng RAM chưa được dùng nhiều mới chứng tỏ sự thiếu hiệu quả.

RAM có nhiều nhiệm vụ, trong đó có lưu trước những dữ liệu (caching). Đồng thời RAM còn được dùng để lưu các dữ liệu ứng dụng đang chạy. Hệ điều hành sẽ đóng vai trò điều phối RAM được sử dụng cho từng mục đích. Như vậy trên một hệ điều hành hoạt động tốt thì con số quan trọng nhất là lượng "RAM sẵn sàng", tức là dung lượng RAM đang sử dụng nhưng có thể nhanh chóng thay đổi mục đích.

Những hệ điều hành hiện đại như Android hay iOS sử dụng một hệ thống rất phức tạp để đảm bảo RAM luôn được sử dụng một cách hiệu quả nhất. Bạn có thể gặp rất nhiều thuật ngữ khi nói về RAM như active, inactive, free, buffered, cached… nhưng chỉ cần nhớ một thuật ngữ quan trọng nhất: RAM sẵn sàng.

Trong thử nghiệm của Android Authority, khi bật máy tính lên thì chiếc Nexus 5x có lượng RAM sẵn sàng là 840MB, trong khi iPhone 7 có 730MB. Như vậy chiếc Nexus 5x còn dùng ít RAM hơn iPhone 7 khi máy vừa khởi động.

Tiếp theo, chúng ta sẽ xét tới dung lượng RAM sử dụng khi chạy ứng dụng. Thuật ngữ được xem xét ở đây là Resident Set Size (RSS), hay là lượng RAM thật mà hệ thống cấp cho ứng dụng (để phân biệt với Virtual Size, là lượng RAM ứng dụng yêu cầu từ hệ thống). Trên cả hai máy, các ứng dụng giống nhau gồm trò chơi và ứng dụng Word cùng được bật lên để so sánh.

Theo dõi dung lượng RAM sử dụng thật (Resident Set Size) trên Android

Dung lượng RAM của ứng dụng chạy trên iPhone, hiển thị trên bộ công cụ X Code

Để đảm bảo trạng thái hoạt động của ứng dụng, ngoài việc mở lên thì người viết còn làm một số thao tác như cho con gà chạy trong Crossy Roads hay gõ vài chữ trong Microsoft Word. Dưới đây là bảng so sánh mức RAM sử dụng trên hai điện thoại:

Không phải lúc nào chiếc iPhone cũng dùng ít RAM hơn khi chạy ứng dụng. Khi cộng tổng lại, ứng dụng trên Nexus 5x chỉ sử dụng nhiều hơn 6% RAM so với iPhone 7, là mức chênh lệch rất thấp.

Như vậy sự khác biệt giữa hai hệ điều hành có lẽ không phải ở quá trình chạy ứng dụng đơn lẻ, mà ở cách quản lý để đảm bảo các ứng dụng đều có đủ RAM để chạy. Do đó tiếp theo chúng ta sẽ xét tới những hành vi sau khi ngừng sử dụng ứng dụng.

Sự khác biệt xảy ra ở quá trình chuyển đổi giữa các ứng dụng

Một khi ứng dụng không được dùng nữa, nó được chuyển từ loại "Foreground" sang "Background". Trên Android, hệ điều hành sẽ thực hiện thao tác "nén" ứng dụng, loại bỏ những thông tin không cần thiết để giảm lượng RAM sử dụng trong khi vẫn đảm bảo ứng dụng có thể hoạt động như cũ khi bật lại. Tất nhiên đến khi lượng RAM trống không còn đủ để mở ứng dụng mới, ứng dụng ở Background sẽ lưu lại "trạng thái" trước khi bị xoá khỏi RAM.

Ứng dụng trên Android được nén lại và giữ trên RAM, sau đó nếu như máy thiếu RAM thì những ứng dụng này sẽ bị xoá

Đối với một số ứng dụng như game, điều này có nghĩa là bạn sẽ phải bắt đầu lại từ đầu. Một số ứng dụng khác như trình duyệt web có thể hiển thị lại những trang web bạn đang mở (chính là trạng thái đã lưu trước khi bị đóng), nhưng các trang web sẽ phải tải lại. Nhìn chung để đảm bảo trải nghiệm tốt nhất thì dung lượng RAM lớn sẽ giúp ứng dụng giảm khả năng bị xoá, đồng nghĩa ít phải tải lại hơn. Đó là lý do các smartphone Android cao cấp ngày nay đều được trang bị từ 4GB RAM.

Trên đây là cách hoạt động của Android, vậy iOS thì sao? Hệ điều hành do Apple phát triển cũng hoạt động tương tự: nén ứng dụng không chạy nữa và khi đầy RAM thì xoá ứng dụng. Tuy nhiên iOS hoạt động hiệu quả hơn và ít phải xoá hẳn ứng dụng khỏi RAM.

Quan sát của Gary Sims cho thấy iOS có khả năng giảm RSS mà không thực sự xoá ứng dụng. Ví dụ như đã thấy ở trên, game Crossy Road chiếm khoảng 308MB RAM khi mở trên iPhone 7. Sau khi thoát ra thì game vẫn được giữ trong RAM, nhưng dung lượng giảm xuống chỉ còn dưới 10MB. Sau đó, khi ứng dụng được bật lại thì nó chỉ chiếm từ 100 – 200MB chứ không bao giờ lên đến mức 308MB như lần chạy đầu. Họ làm điều đó bằng cách nào thì cây viết của Android Authority cũng không thể giải thích nổi, vì Apple không chia sẻ chi tiết cách hoạt động của iOS.

Ứng dụng không còn hoạt động trên iOS vẫn được giữ trên RAM, nhưng chỉ chiếm chưa đến 10MB

Một số bình luận được nhiều lượt thích trên trang web và Reddit cho biết lý do iOS hoạt động đa nhiệm hiệu quả đến vậy: iOS có quy định "mạnh tay" hơn đối với một ứng dụng ở background. Một khi được chuyển về trạng thái background, ứng dụng gần như là bị "đóng băng" và không còn được lưu dữ liệu trong RAM hay làm bất kỳ hoạt động nào. Phần lớn dữ liệu của ứng dụng sẽ được lưu vào bộ nhớ trong, do đó dung lượng RAM chiếm giữ còn lại rất ít. Khi chúng ta bấm vào mục đa nhiệm trên iOS, hình ảnh của ứng dụng thực chất là một hình chụp lại trạng thái gần nhất, và khi bấm vào ứng dụng thì dữ liệu mới được đọc lại từ bộ nhớ trong lên RAM.

Sự khác biệt nằm ở chỗ tốc độ bộ nhớ flash trên những chiếc iPhone mới là rất cao. Do sử dụng giao diện NVMe qua bus PCI Express, tốc độ đọc và ghi liên tục của iPhone 7 lên tới hơn 400MB/s (theo Anandtech), gấp rưỡi những điện thoại Android cao cấp. Đây là yếu tố giúp cho tốc độ tải ứng dụng đa nhiệm trên iPhone rất nhanh, khiến người dùng không cảm thấy có độ trễ rõ rệt khi bật lại ứng dụng.

Tất nhiên cách hoạt động của iOS phát huy tác dụng rõ nhất trên những chiếc iPhone từ 6s trở đi, với dung lượng RAM trên 2GB và bộ nhớ trong rất nhanh. Ở những đời iPhone hay iPad trước, không hiếm gặp trường hợp ứng dụng hoặc trang web phải tải lại sau khi mở từ màn hình đa nhiệm.

Video chi tiết của Android Authority

Như vậy, quả thật là iOS sử dụng RAM hiệu quả hơn Android. Nguyên nhân không phải là hệ điều hành Android "phung phí" RAM khi chạy ứng dụng, mà do cách quản lý đa nhiệm của Android không hiệu quả bằng. Các hãng điện thoại Android có thể bù đắp phần nào bằng cách tăng dung lượng RAM, nhưng kể cả như vậy cũng không thể đọ lại được sự tối ưu tốt và chất lượng phần cứng vượt trội của iPhone.

Anh Minh

Chủ đề khác