Tất cả chuyên mục
Thứ Sáu, 22/11/2024 04:15 (GMT +7)
iOS và Android: Hệ điều hành nào quản lý RAM tốt hơn?
Thứ 5, 24/02/2022 | 16:47:11 [GMT +7] A A
Cần có bao nhiêu RAM để thiết bị thông minh có thể thực hiện các tác vụ đa nhiệm mượt mà? Đây là một câu hỏi vẫn còn nhiều tranh cãi, nhất là khi thiết bị của Apple và các thiết bị chạy Android thường có mức dung lượng RAM khác nhau.
Điện thoại thông minh cần RAM để vận hành hệ điều hành của thiết bị (như iOS hay Android), ứng dụng và dữ liệu cho các ứng dụng đó, bên cạnh đó là dữ liệu truy cập nhanh và bộ nhớ đệm. Dung lượng RAM cần được quản lý và sắp xếp có hiệu quả để ứng dụng có thể hoạt động một cách ổn định. Khi mở một ứng dụng mới, thiết bị cần có một phần bộ nhớ RAM trống để tải ứng dụng cùng dữ liệu của nó lên và bắt đầu chạy ứng dụng. Tương tự, khi thoát một ứng dụng, khoảng bộ nhớ nó chiếm sẽ được trả về lại cho hệ điều hành.
Tất cả sẽ vận hành một cách trơn tru và ổn định miễn là luôn có đủ dung lượng trống trên RAM. Nhưng nếu không còn đủ bộ nhớ trống thì thế nào? Hệ điều hành iOS và Android sẽ xử lý tình huống này như thế nào và có gì khác biệt?
Một chút lịch sử về RAM trên thiết bị của Apple và Android
Ở thì kỳ đầu của iOS và Android, điện thoại thông minh không có nhiều RAM như bây giờ và cũng không có nhiều khác biệt giữa thiết bị iOS và thiết bị Android. Chiếc điện thoại HTC Dream năm 2008 chỉ có 192MB RAM, và chiếc iPhone đầu tiên cũng chỉ có 128MB RAM.
Đến đời iPhone 3G vẫn giữ nguyên 128MB RAM và đến iPhone 3GS năm 2009 thì tăng lên 256MB RAM. Đến dòng iPhone 4, Apple gấp đôi số RAM và đến iPhone 5 ra mắt năm 2012 cũng tiếp tục nhân đôi. Các dòng iPhone sau đó giữ nguyên mức 1GB RAM cho đến khi Apple ra mắt iPhone 6S vào năm 2015 với 2GB RAM. Đến năm 2021, chiếc iPhone 13 Pro đang sở hữu 6GB RAM.
Trong hệ sinh thái Android, dòng điện thoại Samsung Galaxy S (từ năm 2010) được trang bị 512MB và đến đời Galaxy S2 là 1GB RAM. Từ năm 2012, đời S3 có thêm các biến thể với 2GB RAM, tương tự với đời S4 ra mắt năm 2013. Từ mốc này, chúng ta dần thấy rõ sự khác biệt về dung lượng RAM của iPhone và các thiết bị Android. Samsung đã cung cấp dòng điện thoại S4 với 2GB RAM, tức trước iPhone 6S của Apple đến hai năm. Đến hiện tại, ở năm 2021/2022, chúng ta đã có các sản phẩm Android được trang bị lên đến 16GB RAM, đơn cử là Samsung Galaxy S22 Ultra.
Dựa trên sự khác biệt này, nhiều người cho rằng “iPhones tối ưu hoá tốt hơn nên không cần nhiều RAM như điện thoại Android”. Ngoài mặt thì quan điểm này khá là hợp lý. Nhưng sự thật lại không đơn giản đến vậy. Vấn đề tối ưu hoá không tác động quá nhiều đến sự khác biệt này, mà phần hơn là quyết định sử dụng Java của nhà phát triển Android.
Objective-C/Swift và Java/Kotlin
Khi một nhà phát triển viết ứng dụng cho iOS, nó được biên dịch trực tiếp thành các đoạn mã có thể chạy trên bộ xử lý của iPhone. Đây được gọi là native code (mã dành riêng cho một bộ xử lý nào đó) và nó không yêu cầu phải diễn dịch hay cần môi trường ảo để chạy. Mặt khác, Android lại khác. Android sử dụng Java. Khi các đoạn mã Java được biên dịch, nó chuyển thành một mã trung gian (Java Bytecode) độc lập với bộ xử lý. Cùng một đoạn mã Java Bytecode có thể chạy trên bộ xử lý Arm, x86 hay RISC-V. Câu khẩu hiệu của Java là “Viết một lần, hoạt động bất cứ đâu”. Và chính điều này đã giúp mang lại lợi ích to lớn với khả năng tương thích đa nền tảng.
Tuy nhiên, Java cũng có một nhược điểm. Mỗi một cặp gồm hệ điều hành và vi xử lý cần một môi trường khởi chạy, hay Java Virtual Machine (JVM), có thể hiểu Java Bytecode và biên dịch nó thành native code của bộ xử lý. Ban đầu, quá trình này thực hiện theo hình thức cuốn chiếu, có nghĩa là đọc từng đoạn mã Bytecode, thực thi nó, tiếp tục đọc đoạn mã tiếp theo và cứ tiếp tục như vậy. Dần dần, các kỹ thuật khác được tạo ra để đẩy nhanh tốc độ thực hiện quá trình này, trong đó có lưu các phần đã chuyển đổi trước đó vào bộ nhớ đệm, biên dịch theo phương thức JIT, biên dịch trước…
Tuy nhiên, dù những kỹ thuật này có tốt đến đâu thì cũng tồn tại hai vấn đề. Một là native code vận hành tốt hơn so với mã trung gian vận hành qua JVM. Và hai là sử dụng JVM (kể cả khi dùng kỹ thuật dịch mã trước) làm tăng dung lượng bộ nhớ RAM mà ứng dụng chiếm chỗ.
Dưới đây là bảng so sánh dung lượng RAM mà các ứng dụng chiếm chỗ trên iOS và Android:
Bạn có thể thấy, ứng dụng trên iOS hầu như đều chiếm ít RAM hơn, lên đến 70%. Nếu tính trung bình thì iOS sử dụng ít RAM hơn Android khoảng 40%. Như vậy, nếu mọi thông số khác đều tương tự nhau, chiếc điện thoại iPhone sẽ cần RAM ít hơn 40% để mở cùng số lượng ứng dụng trên điện thoại Android. Nếu chiếc điện thoại iPhone 13 Pro có 6GB RAM, thì một chiếc điện thoại Android sẽ cần 8GB để mở các ứng dụng tương đương.
Tuy nhiên, đó chưa phải là tất cả! Không phải mọi ứng dụng đều sử dụng JVM. Vẫn có những ứng dụng sử dụng native code trên Android. Phổ biến nhất là các tựa game trên di động vì những ứng dụng này không sử dụng Android UI hay các phiên bản Android framework. Android cung cấp một giải pháp cho các nhà làm game dịch mã nguồn của họ trực tiếp thành giao thức mã hoá nhị phân của bộ xử lý (native binary). Như vậy, các đoạn mã sẽ chạy trực tiếp trên bộ xử lý mà không cần JVM. Tất cả những công cụ làm game, như Unity và Unreal, đều hoạt động dựa trên việc dịch sang native code mà không cần JVM.
Dưới đây là bảng so sánh lượng RAM mà các tựa game sử dụng trên iOS và Android:
Kết quả khá khác biệt so với các loại ứng dụng khác. Bạn có thể thấy các ứng dụng game sử dụng ít RAM hơn trên Android (lên đến 20%) và cũng có một số game sử dụng nhiều hơn. Tính trung bình thì các tựa game dành cho iOS sử dụng ít RAM hơn phiên bản trên Android khoảng 10%. Điều này cho thấy sự khác biệt giữa việc sử dụng JVM và Android UI so với viết game với mã nguồn chuyên hoá.
Con số 10% là khá đáng kể, nhưng để có con số chính xác hơn, chúng ta còn phải tính đến phiên bản biên dịch mã, độ phân giải màn hình, cấu trúc nén, cấu trúc bề mặt, Open GL ES, Metal và nhiều thông số khác. Chúng ta có thể kết luận rằng lượng RAM sử dụng trên iOS và Android là tương đương nhau đối với các ứng dụng game.
iPhone có RAM bao nhiêu là lý tưởng?
Khi trả lời cho câu hỏi trên, điều quan trọng nhất là phải xác định được như thế nào là “lý tưởng”. Chỉ chạy một ứng dụng trên iPhone, kể cả đời cũ, cũng chẳng vấn đề gì. Câu hỏi đặt ra là có bao nhiêu ứng dụng có thể lưu trên RAM? Hay nói cách khác là có bao nhiêu ứng dụng hoạt động mà bạn có thể chuyển qua lại nhanh chóng mà không phải chờ tải lại? Có bao nhiêu ứng dụng bạn sử dụng thường xuyên, nhiều lần trong ngày? Nếu bạn gửi một email, chơi một trò chơi, đăng ảnh selfie lên mạng xã hội, quay lại chiếc email và phải chờ ứng dụng tải lại thì quả là một trải nghiệm tồi tệ. Những hạn chế đó sẽ sớm khiến bạn cảm thấy khó chịu.
Vậy “lý tưởng” ở đây còn tuỳ vào cách bạn sử dụng iPhone của mình. Làm việc? Chơi game? Mạng xã hội? Chỉnh sửa ảnh? Và còn nhiều mục đích khác nữa.
Nếu bạn mở một ứng dụng mới mà trên RAM không còn đủ chỗ để chứa nó, khi đó, hệ điều hành iOS sẽ làm hai việc. Đầu tiên là nó sẽ tìm các nén một vài khối dữ liệu (còn gọi là page) đã lâu không còn dùng tới. iOS sẽ xác định những dữ liệu đó, nén lại bằng một thuật toán đặc biệt có tên WKdm, và ghi lại trên bộ nhớ RAM. Giả sử bạn có 128K dữ liệu, tỷ suất nén là 50%, vậy thì 128K sẽ được nén thành 64K và giải phóng 64K dung lượng.
Sau đó, nếu vẫn chưa đủ chỗ trống, iOS sẽ tiếp tục xoá bỏ một ứng dụng trên RAM để lấy lại bộ nhớ. Nó còn được gọi là buộc dừng ứng dụng. Nếu bạn mở lại ứng dụng đã bị xoá, nó sẽ được tải lại từ đầu.
Dưới đây là biểu đồ thể hiện dung lượng RAM đã dùng và số dung lượng dữ liệu đã nén mỗi khi mở một ứng dụng mới hoặc đã mở trước đó trên iPhone SE (2020) với 3GB RAM:
Ban đầu, iOS chỉ có khoảng 200MB dữ liệu nén trên RAM và khoảng 2GB RAM đã được sử dụng. Sau đó, khi mở từng ứng dụng khác nhau lên, lượng RAM sử dụng bắt đầu tăng theo và dung lượng nén trên RAM cũng tăng theo. Bạn có thể thấy lần tăng đột biến đầu tiên là khi mở ứng dụng Booking.com. Và khi mở Google Photos cũng tương tự, lúc này iOS đã sử dụng 1GB RAM để chứa dữ liệu nén. Đến khi mở ứng dụng Tasty, đã có hơn một chục ứng dụng được mở và vẫn chưa có cái nào bị buộc dừng. Tiếp tục tăng mức độ, tôi đã mở trình duyệt Safari và bắt đầu mở các trang web khác nhau trên từng tab riêng biệt. Đến lúc này, Safari sử dụng 850MB RAM và iOS đã phải buộc dừng ứng dụng Keynote.
Như đã nói ở trên, các tựa game sử dụng nhiều RAM hơn ứng dụng khác. Một chiếc iPhone SE (2020) có thể mở cùng lúc khoảng 4 tựa game (Subway Surfers, 1945 Airforce, Candy Crush, Brawl Stars). Tuy nhiên, khi mở đến tựa game thứ 5 là Asphalt 9, iOS đã phải buộc dừng 2 tựa game là Subway Surfers và 1945 Airforce.
Khi có nhiều dung lượng RAM, hệ điều hành sẽ không phải buộc dừng ứng dụng quá thường xuyên. Dưới đây là biểu đồ thể hiện cách quản lý RAM khi mở các tựa game trên chiếc iPhone 13 Pro với 6GB RAM:
Chiếc iPhone 13 Pro có thể mở đồng thời nhiều tựa game hơn iPhone SE (2020). Vì nó có RAM lớn gấp đôi nên kết quả này cũng không có nhiều bất ngờ. Những tựa game mở về sau khá nặng, một số game chiếm hơn 1GB RAM. Khi mở đến Genshin Impact, iOS không thể nén thêm dữ liệu nữa (lúc này đã có hơn 2GB dữ liệu nén) và vì vậy nó buộc phải xoá 3 tựa game Subway Surfers, 1945 Airforce và Brawl Stars khỏi bộ nhớ RAM để nhường chỗ.
Cuối cùng, một khía cạnh nữa mà chúng ta phải tính đến đó là nhu cầu trong tương lai. Genshin Impact là một tựa game rất nặng, chiếm hơn 1,2GB RAM trên iOS. Tựa game này chỉ mới ra mắt năm 2020. Chẳng ai biết được trơng những năm tới sẽ còn có những tựa game khủng nào khác nữa. Với những ai thích dùng iPhone để chơi game thì câu trả lời tốt nhất dành cho bạn là mua phiên bản càng nhiều RAM càng tốt.
Và câu trả lời là…
Với những ai chỉ sử dụng các dụng dụng học tập, làm việc và mạng xã hội (không lướt web nhiều), vậy thì 3GB RAM là đủ. Nếu bạn đang tìm mua một chiếc iPhone mới (trừ iPhone SE) thì toàn bộ các dòng iPhone với 4GB RAM hiện nay đều có thể đáp ứng nhu cầu. Nếu bạn lướt web thường xuyên hay làm các công việc liên quan đến đa phương tiện, dù 4GB RAM vẫn có thể đủ nhưng bạn cũng nên cân nhắc nâng cấp lên 6GB.
Nếu bạn là người đam mê các tựa game trên di động, và muốn sử dụng thiết bị lâu dài, chắc chắn bạn nên lựa chọn các mẫu với 6GB RAM.
Bao nhiêu RAM là lý tưởng với Android?
Như đã biết, ứng dụng trên Android có xu hướng sử dụng nhiều RAM hơn iOS. Như vậy có nghĩa là bản thân Android và các ứng dụng mặc định đi kèm đã sử dụng nhiều bộ nhớ hơn. Kết quả là ngay từ lúc mở máy thì Android đã chiếm nhiều RAM hơn iOS.
Khi Android không có đủ bộ nhớ RAM để mở ứng dụng mới, nó cũng sẽ sử dụng một kỹ thuật tương tự như iOS, đó là nén dữ liệu. Trên Android, quá trình này được gọi là hoán đổi thành zRAM, theo truyền thống sử dụng “z” chỉ dữ liệu nén trên hệ điều hành Unix/Linux.
Một chiếc điện thoại Google Pixel với 4GB RAM có thể mở tất cả các ứng dụng ở bảng trên (từ Play Store cho đến Twitter) và tất cả các ứng dụng đều được lưu trên bộ nhớ, vì vậy bạn có thể chuyển đổi qua lại giữa chúng mà không phải chờ tải lại.
Trong khi đó, đối với các tựa game thì lại có chút khác biệt trên Android:
Chiếc điện thoại Google Pixel 3 XL được trang bị 4GB RAM, nhưng lại chỉ có 3.579MB khả dụng!? Bạn cũng để ý xem ngay khi mở tựa game đầu tiên thì hầu như toàn bộ RAM đã được sử dụng. Khi mở thêm các tựa game tiếp theo thì bộ nhớ hoán đổi (zRAM) tăng dần. Khi mở đến Brawl Stars thì đã có hơn 1,5GB dữ liệu nén trên RAM, nhưng nó vẫn chưa đủ nên Subway Surfers đã bị buộc dừng.
Với những thiết bị có bộ nhớ RAM lớn hơn, như Samsung Galaxy S21 Ultra với 12GB RAM, câu chuyện lại khác hoàn toàn:
Nhiều RAM hơn đồng nghĩa với việc có nhiều ứng dụng được lưu trên RAM hơn. Như bạn thấy, 12GB RAM là con số khá lớn để phục vụ các game thủ. Tất cả các tựa game từ Subway Surfers cho đến Genshin Impact đều được giữ lại đồng thời trên RAM. Chiếc điện thoại S21 Ultra không sử dụng hết RAM cho đến khi mở đến Shadowgun Legends, tương ứng với sự gia tăng của zRAM.
Ngay cả khi mở đến tựa game cuối cùng, không một trò nào bị buộc dừng và xoá dữ liệu. Trên thực tế, để ép Android phải buộc dừng ứng dụng nào đó, tôi đã phải mở thêm 12 tab trên trình duyệt Chrome. Chỉ đến khi đó thì Android mới buộc dừng trò Minecraft. Bạn có thể xem bài kiểm tra chi tiết tại bài viết này.
Kết quả là…
Nếu bạn chỉ sử dụng một vài ứng dụng gọn nhẹ, không lướt web hay chơi game nhiều thì một chiếc điện thoại Android với 4GB RAM là đủ. Với mục đích chơi game, bạn nên tìm đến các dòng điện thoại tầm trung có 6GB RAM, đủ để bạn sử dụng các ứng dụng làm việc, mạng xã hội, một vài tab trình duyệt và thêm một vài tựa game.
Với các thiết bị cao cấp và cận cao cấp, con số 8GB RAM là đủ cho trải nghiệm đa nhiệm mà vẫn có thể đáp ứng được trong tương lai gần. Con số 12GB RAM trên Galaxy S21 Ultra chắc chắn là con số lý tưởng cho những game thủ và đáp ứng tốt nhu cầu trong tương lai. Ở thời điểm này, dường như 16GB RAM chưa thể hiện được nhiều ngoài việc khoe khoang.
iOS và Android: Hệ điều hành nào tốt hơn?
Cả hai hệ điều hành đều sử dụng kỹ thuật nén dữ liệu và lưu trữ tại chỗ để tạo thêm dung lượng trống từ RAM. Cả hai đều thực hiện quá trình này trong lúc vận hành và đều cần phải giải nén dữ liệu trước sử dụng lại. Về mặt công nghệ, cả hai đều có hiệu quả tương đương nhau, nhưng với Android thì hệ điều hành này sẽ tìm cách nén dữ liệu nhiều hơn trước khi phải buộc dừng ứng dụng.
Tuy nhiên, vì iOS sử dụng native code và không sử dụng ngôn ngữ lập trình trung gian, nên ứng dụng trên iOS và bản thân hệ điều hành này sử dụng ít dung lượng hơn. Điểm khác biệt này không quá lớn đối với các ứng dụng game, nhưng vẫn là một yếu tố lớn để xem xét.
Tóm lại, 6GB RAM trên chiếc iPhone 13 Pro đủ cho người dùng với các ứng dụng nặng và chơi game. Nó không thoải mái như S21 Ultra nhưng đó là vì chiếc điện thoại này có dung lượng RAM gấp đôi iPhone 13 Pro. Nhưng nếu có cùng mức RAM là 6GB thì chắc chắn một chiếc iPhone sẽ làm tốt hơn điện thoại Android.
Như vậy, vì Android sử dụng nhiều RAM hơn nên bạn cần cân nhắc lựa chọn mức 8GB RAM để đạt được hiệu suất tương tự (về mặt quản lý bộ nhớ) với một chiếc iPhone 6GB RAM.
Theo Vnreview
Liên kết website
Ý kiến ()