Original topic:

[THREAD] Apakah RAM Plus di Samsung itu gimmick?

(Topic created on: 05-06-2024 09:04 PM)
6502 Views
red-v-in
Expert Level 5
Options
Others

image

*Disclaimer

Sebenarnya saya malas buat postingan ini karena sebenarnya tinggal baca aja informasi atau jelajahi lebih dalam android anda sendiri, tapi karna banyak informasi simpang siur dan nggak tau informasi apa yang harus dicari plus hanya sedikit members disini yang nyatanya membantu (termasuk experts dan star level tidak banyak membantu), jadi saya yang akan jelasinnya ya walaupun postingan ini akan ditinggal aja atau diabaikan atau cuman sekedar kasih love saja

Sebelum itu, apa itu RAM?

RAM adalah singkatan dari Random Access Memory. RAM adalah jenis memori yang dapat menyimpan data yang dapat diakses secara acak tanpa memedulikan letaknya. Bentuk dan letaknya sangat berbeda bahkan terpisah dengan memori atau penyimpanan internal yang sering orang bilangnya dengan ROM (Walaupun secara harfiah memori != ROM). 

RAM adalah komponen memori yang digunakan untuk mengakses data acak dari sistem operasi dan aplikasi. Fungsi dan tugas RAM yang paling penting adalah untuk menyimpan data aplikasi dan data sistem yang terus berubah-ubah setiap saat. 

image

RAM dapat menulis dan membaca data jauh lebih cepat daripada ROM atau memori yang tersedia. Dalam satu ponsel, kecepatan RAM yang terpasang bisa >5 kali lipat daripada ROM yang tersedia. Karena fungsinya berbeda, biasanya deskripsi RAM dan ROM akan tertulis di box ponsel, spefisikasi hp atau lihat informasi online. RAM akan selalu berukuran lebih kecil dari ROM. Jadi jika di box ponsel yang tertulis 128/8 GB, maka yang RAM nya adalah 8 GB, sedangkan yang 128 GB adalah ROM.

RAM sudah ada sejak lama ketika android belum menjadi apa-apa. Jauh pada jaman 1960-an, RAM sudah dibuat untuk menyimpan data sementara pada komputer. Tapi saya disini tidak berbicara tentang filosofi tentang RAM, jenis dan tipenya. Saya berbicara spesifik bagaimana RAM bekerja di ponsel.

image

Sebelumnya sudah diketahui bahwa fungsi RAM adalah menyimpan data sementara yang bersifat acak. Muncul pertanyaan, bagaimana RAM menentukan data acak dari sebuah aplikasi contohnya dan menjalankannya didalamnya sampai aplikasi sudah selesai dijalankan atau tidak digunakan lagi dan data tadi dihapus? Didalam jantungnya android terdapat linux. Spesifiknya linux disini adalah kernel yang terdapat pada hp masing-masing. Kalau mau lihat kernel anda, silahkan buka pengaturan -> tentang ponsel -> informasi perangkat lunak (yang pakai bahasa lain menyesuaikan saja) dan lihat pada versi kernel. Versi kernel disini adalah versi kernel yang terpasang di ponsel untuk dapat menjalankan fungsi sebagaimana biasanya. Kernel inilah yang menentukan kerja RAM nantinya. 

Pada dasarnya, sistem android (anggaplah Samsung OneUI) bekerja berdasarkan prinsip bahwa RAM akan selalu mencoba untuk menggunakan semua ruang yang tersedia (sisa RAM) secara optimal sesuai dengan kebutuhan. Jika terdapat cukup ruang, sistem akan terus menyimpan memori setelah aplikasi ditutup atau diletakkan di latar belakang. Saat pengguna membuka aplikasi lagi, aplikasi diluncurkan lebih cepat. Inilah alasannya mengapa sebagian besar RAM yang ada punya sedikit ruang kosong.

image

Akses dan alokasi RAM di android memerlukan akses khusus. Hal ini biasanya dilakukan melalui kernel dan driver linux. Aplikasi yang terinstall di ponsel berkomunikasi melalui antarmuka yang disediakan oleh driver. Areanya dapat dibagi menjadi Memori Virtual dan Memori Fisik. CPU (di ponsel dianggap SOC/System On Chip) mengelola RAM menggunakan Manajemen Memori.

Sistem android membagi RAM agar sesuai dengan kebutuhan yang dibutuhkan saat menjalankan sistem dan aplikasi, dikenal dengan nama paging. Setiap proses sistem dan aplikasi yang berjalan, akan mempunyai anak cabang tersendiri yang disebut zygote dan dimulai ketika kode framework dimuat saat sistem atau ponsel melakukan booting. Cara ini memungkinkan tiap sistem dan aplikasi mendapat RAM yang sesuai dengan kebutuhan. Untuk detailnya, silahkan baca-baca tentang zygote dan fundamental android di google.

Bagaimana jika RAM penuh? Jika memori di RAM tidak cukup, sistem dapat melakukan berbagai tindakan pencegahan. Sistem dapat mengaktifkan Garbage Collection-kswapd dan LMK (Low Memory Killer) secara bertahap di sistem. Yang menjadi fokus disini adalah LMK.

Disebut Low Memory Killer (atau pembunuh memori rendah dalam bahasa indonesia atau OOM Killer di jati diri linux) karena digunakan saat ruang di RAM yang tersedia tidak dapat diperoleh meskipun telah dilakukan tindakan pencegahan. Sistem menggunakan metode onTrimMemory untuk memberi tahu aplikasi bahwa memori hampir habis dan alokasi buat tiap aplikasi harus dikurangi. Jika tidak cukup, Low Memory Killer diaktifkan. Cara kerjanya tergantung versi kernel, android dan pembuat ponsel.

image

Pada versi android lama (<android 9) atau versi kernel lama (<4.4) atau terdapat LMK didalam linux kernel, LMK memulai proses penghentian paksa aplikasi atau kill apps mulai dari atas tabel ke bawah (sesuai tabel diatas), ditentukan oleh in-kernel driver didalam linux. Sedangkan pada android terbaru, ditentukan oleh lmkd, vmpressure dan nilai oom_adj pada tiap aplikasi. Produsen ponsel seperti Samsung dapat mengubah perilaku LMK sesuai keinginan Samsung. 

Dengan melihat ukuran RAM jauh lebih kecil daripada ROM, muncul pertanyaan bagaimana caranya aplikasi dan sistem tetap dapat berjalan walau ukuran kecil dan aplikasi kian kini makin besar ukuran dan jumlahnya? Sebelumnya sudah disinggung bahwa Aplikasi yang terinstall di ponsel berkomunikasi melalui antarmuka yang disediakan oleh driver. Areanya dapat dibagi menjadi Memori Virtual dan Memori Fisik. Memori virtual inilah yang membantu kinerja RAM tetap optimal.

Berbeda dengan RAM, memori virtual tidak mempunyai wujud, bentuk seperti RAM tetapi ia adalah sebuah kode atau file sistem yang sengaja dibuat yang digunakan untuk meringankan beban RAM. Karena tidak dalam wujud asli, memori virtual memanfaatkan sistem yang ada. Sistem yang dimaksud adalah RAM dan ROM. Jadi bagaimana wujud asli memori virtual atau virtual memori?

Android sendiri memiliki swap. Swap adalah file sistem yang memanfaatkan penyimpanan yang tersedia pada ponsel untuk digunakan sebagai tempat paging RAM ketika RAM hampir penuh dan LMK tidak bisa berbuat apa-apa atau dengan kata lain memindahkan RAM yang digunakan kedalam tempat penyimpanan biasa. Hal ini sama ceritanya dengan pagefile pada Windows. Swap di android terdiri dari 2, yaitu swap ke penyimpanan internal atau ROM yang biasanya dikenal swap juga dan swap kedalam RAM yang dikenal dengan zRAM.

Masing-masing memiliki kekurangan dan kelebihan tetapi memiliki tujuan utama yang sama yaitu mengurangi beban RAM yang tersedia. Karena kecepatan ROM lebih lambat daripada RAM dan alokasi serta hierarki RAM lebih tinggi daripada ROM, semua produsen ponsel tidak menggunakan swap pada ROM secara bawaan dan justru menggunakan zRAM.

Jadi apa itu zram? zram, sebelumnya disebut compcache, adalah modul kernel Linux untuk membuat blok (kode seragam tertentu yang memiliki nilai tertentu) device terkompresi didalam RAM. Blok yang dibuat dengan zram kemudian dapat digunakan untuk swap atau sebagai RAM disk untuk keperluan umum. Dua kegunaan zram yang paling umum adalah untuk penyimpanan file sementara ( /tmp) dan sebagai swap. Awalnya, zram hanya memiliki fungsi pertama, oleh karena itu nama aslinya "compcache" (compressed cache atau "cache terkompresi"). 

Pada awalnya blok zram yang dibuat tidak mencadangkan atau menggunakan RAM apa pun. Hanya ketika file perlu atau ingin ditukar, file tersebut akan dikompresi dan dipindahkan ke device blok zram. Blok zram kemudian akan bertambah atau berkurang secara dinamis sesuai kebutuhan.

Misalnya, kita punya RAM 100 MB dan ada aplikasi butuh RAM 100 MB, maka 100 MB akan berjalan dan dipakai di RAM saat aplikasi dibuka. Jika kita langsung menekan tombol home (0) atau pake gesture ke tampilan home tanpa menutup aplikasi pakai tombol exit (<), 100 MB tersebut akan di-cache (disimpan sementara) di RAM. Jika kita membuka aplikasi baru lainnya dan RAM tersebut cukup penuh, yang 100 MB tadi akan dikompres menjadi 35 MB dan masih terdapat dalam RAM, tidak ke mana-mana, jadi kita punya 65 MB RAM kosong untuk aplikasi baru.

image

Kembali pada judul utama, jadi RAM Plus di Samsung itu sebenarnya apa? Ya, RAM Plus yang dipakai pada Samsung adalah zram. Lebih detailnya, zram yang bisa diatur nilainya didalam menu RAM Plus. 

Kenapa bisa seperti itu? Karena pada dasarnya tiap ponsel yang ada sudah memiliki nilai zram tertentu. Nilai ini tergantung ponsel, bahkan dengan seri sama tetapi jika memiliki RAM yang berbeda, nilai zram juga berbeda. zram memiliki nilai maksimal hingga 100% kapasitas total RAM pada ponsel. Jika RAM nya 8 GB, maka maksimal zram nya adalah 8 GB juga. Untuk mengubah nilai zram, dibutuhkan akses tertinggi (superuser) ke sistem atau dengan memodifikasi ponsel anda sehingga mempunyai akses superuser layaknya su di linux terminal. Dengan memasang aplikasi pengatur zram didalam sistem OneUI, Samsung dapat melewati batasan tersebut sehingga zram bisa diatur sesuka hati. Samsung mengkonfigurasi zram pada penyimpanan internal anda yang berfungsi sebagai blok zram. Lokasi lebih detailnya yaitu pada /dev/block/zram0. 

image

Itulah alasan mengapa ketika melihat di aplikasi pengecek sistem seperti devcheck, yang bertambah nilainya adalah zram, bukan swap biasa. Jadi menu opsi di RAM Plus sebenarnya adalah nilai zram sistem bawaan yang dirubah 

Misalkan di suatu ponsel punya menu RAM Plus

 

  • 4 GB
  • 6 GB
  • 8 GB

 

Dengan nilai zram defaultnya adalah 3 GB, maka makna asli menu di RAM Plus adalah

 

  • 4 GB zram di ponsel saat setelah restart
  • 6 GB zram di ponsel saat setelah restart
  • 8 GB zram di ponsel saat setelah restart

 

Tambahan

Contoh lainnya, saya punya 8 GB dengan konfigurasi zram 8 GB. Dengan asumsi zram akan selalu mengkompresi blok device dengan jenis apapun dan nilai kompresi nya 1:2, maka:

 

  • RAM dan zram terisi penuh: 4 GB RAM + 8 GB zram (~4 GB dalam RAM yang selanjutnya LMK akan bergerak kemudian)
  • Pemakaian normal tanpa zram: 8 GB RAM + 0 GB zram
  • Penggunaan normal atau sedang dengan pertukaran ringan: 5 GB RAM + 3 GB zram (~3 GB tersisa dalam RAM untuk aplikasi lain)
  • Tanpa konfigurasi zram apa pun: RAM 8 GB

 

Oleh karena itu, zram selalu menawarkan keunggulan yaitu mampu menyimpan lebih banyak konten di RAM.

Rhanda20
Active Level 5
Others
Realy2 nice info.. respect 🫡
red-v-in
Expert Level 5
Others
Trims
0 Likes
SilverSwords
Active Level 10
Others
Makasih banyak infonya puh
SilverSwords
Active Level 10
Others
Jadi, ram plus sebenernya adalah zram (bukan swap ke penyimpanan alias rom) dan merupakan bagian dari ram. Misal spek hp ram 8, ram plus diatur 4. Artinya ram 4 + zram 4. Begitu?
red-v-in
Expert Level 5
Others
Ya 8 + 4. Tapi android mencegah RAM penuh, jadi yang 8 GB tidak sepenuhnya terpakai 8 GB. Yang dicontohkan itu diabaikan limitasinya dan pake kompresi mutlak yang pasti jarang terjadi
SilverSwords
Active Level 10
Others
Masih bingung om. Aku nangkapnya gini, dalam ram 8 gb itu beberapa bagian di dalamnya adalah zram. Anggaplah zram 3 gb, berarti dalam ram 8 gb, 3 gb-nya zram. Artinya kalo kita atur ram plus (karna ini nambahin kapasitas zram) misalnya jadi 8 gb, setiap cache aplikasi langsung dikompres ke zram.
SilverSwords
Active Level 10
Others
Baru liat penjelasan soal ini di yt kepoin tekno. Ram plus nambahin zram, ambil dari ufs
red-v-in
Expert Level 5
Others
Ambil dari ufs?
0 Likes
SilverSwords
Active Level 10
Others
Iya. Kayak gini gambarannyaSmartSelect_20240507_202340_YouTube_1000000953_1715088220.jpg
0 Likes
red-v-in
Expert Level 5
Others
Salah ilustrasi dan penjelasan. Kalau dari youtuber saya maklumi aja