Minggu, 06 September 2015

Manajemen RAM di Android / Linux

Banyaknya user yang awam tentang linux/android dan menyamakan persepsi salah yang mereka tahu dengan sistem operasi windows. perlu diingat, Android based on Linux, bukan windows… cara kerja, pengaturan, serta manajemennya juga berbeda karena berbeda sistem operasi

Tiga hal yang perlu diingat


  1. Android/Linux itu semua tentang efisiensi..
  2. Android mengganggap RAM itu adalah Sumber daya (Resource) yang harus digunakan
  3. Android memiliki AutoKiller Saat Low memory atau LMK
Konsep pemakaian memori Linux adalah semua tentang efisiensi. RAM adalah sumber daya yang harus digunakan, 100% jika memungkinkan, sepanjang waktu (jika memungkinkan).

Linux menggunakan RAM yang tidak digunakan untuk cache data dan filesystem meta-data dari perangkat penyimpanan lambat (Flash atau disk) karena mengambil informasi dari RAM jauh lebih cepat: Tidak ada hambatan (bottleneck) seperti media fisik lambat, slow buses or device clocks, dan tidak memerlukan dekompresi.

dekompresi : tiap aplikasi di android itu adalah compiled java within compressed zip.
jadi apk harus di dekompresi, sebelum aplikasi siap untuk di ekseskusi

LOGIKA KERJA RAM ANDROID/LINUX
Ram : meja kerja
CPU : pegawai
isi ram : barang-barang

Seorang pegawai (CPU), dia kerjanya mengatur, pendataan, stempel, dan tanda tangan…

mana yang lebih baik??
A. meja kerja pegawai tsb diisi penuh oleh barang2 yang sering dia pakai, kaya pulpen, scanner, printer, stempel, agar dia semakin cepat mengerjakan kerjaannya, semakin besar meja (RAM), semakin baik kerjanya.. atau..

B. meja kerjanya kosong, dan dia harus ambil pulpen ke tempat pengadaan pulpen, mau scan harus ke scanner di ujung kantor, mau nge-print harus jalan dulu ke printer

no.1 adalah cara Android/Linux bekerja
balik ke tulisan atas : Linux/Android itu semua tentang efisiensi..
Android menganggap RAM itu resource yang harus digunakan, 100% klo emang bisa..


HUBUNGAN RAM BATTERY
RAM usage tidak mempengaruhi battery

    1. Mengisi RAM itu diatur oleh Memory Controller BUKAN CPU/APU
    2. apapun yang di store di memory, digunakan atau tidak, tidak mengaktifkan CPU/APU, tapi oleh memory controller chip.
    3. Semakin sedikit FREE RAM di android semakin cepat, karena semua resource yg ada sudah tersedia di RAM, jadi tinggal panggil address resource di ram, tidak perlu mencari lalu me-load frameworks/bitmap/vector/content
The amount of data you hold in memory doesn’t influence the battery life as the complete memory has to be refreshed all the time, whether you store something there or not (the memory controller doesn’t know whether a part is “unused”).

LOGIKA :
Ram : meja kerja
CPU : pegawai
Isi ram : barang-barang
Sekretaris : Memory Controller

karena sekretaris tau apa yang sering pegawai pakai, oleh sekretaris meja kerja diisi barang2 yang sering digunakan.. pegawainya (cpu) ya tinggal pakai aja

LMK
Android sendiri sudah memiliki LMK (Low Memory Killer) untuk mengatur kebutuhan memory Di dalam LMK ini ada 6 pembagian untuk pengaturan task killer, yaitu:

  • FOREGROUND_APP : Aplikasi yang ada aktif dilayar saat ini
  • VISIBLE_APP : Aplikasi yang hidup dan berjalan di background karena masih melakukan sesuatu
  • SECONDARY_SERVER : sebuah proses/service yg dibutuhkan aplikasi yang sedang berjalan
  • HIDDEN_APP :adalah proses, yang duduk menganggur (tapi masih hidup) dalam kasus itu diperlukan suatu aplikasi yang masih hidup dan berjalan. Untuk sebagian besar, kita tidak pernah ingin menyesuaikan ketika aplikasi dan proses yang dimatikan.
  • CONTENT_PROVIDER : This is apps that provide data (content) to the system. HTC Facebook Sync? That’s a CONTENT_PROVIDER. So are things like the Android Market, or Fring. If they are alive, they can refresh and provide the content they are supposed to at the set interval. If you kill them, they can’t of course.
  • EMPTY_APP : I call these “ghosts.” They are apps that you have opened, but are done with them. Android uses a unique style of handling memory management. When an activity is ended, instead of killing it off Android keeps the application in memory so that opening them again is a faster process. Theses “ghost” apps use no battery or CPU time, they just fill RAM that would be otherwise empty. When this memory is needed by a different application or process, the RAM is flushed and made available for the new app. To satisfy the geekier people (like myself) Android does this by keeping a list of recently used apps, with the oldest apps in the list given the lowest priority — they are killed first if RAM is needed elsewhere. This is a perfect way to handle ‘ghost’ processes, so there’s no need to touch this part
walaupun sudah diatur oleh system, tapi kita bisa mengaturnya sendiri…
Setiap Handset mempunyai setting LMK yg berbeda-beda..



Setiap service/app bisa dimatikan oleh android jika di rasakan perlu. Misalnya jika sistem merasa kekurangan memory maka service tersebut dimatikan berdasarkan skala prioritas yg ada. Ketika proses yg meminta memory banyak telah selesai. Maka system pun yg bertanggung jawab utk menyalakan servis itu kembali.

MENGAPA ANDROID TIDAK MEMBUTUHKAN TASK KILLER?

  • Kebanyakan Aplikasi akan keluar dengan sendirinya apabila user menekan tombol “back”
  • Jika menekan Home, Android akhirnya akan mematikannya setelah itu berada di latar belakang untuk sementara waktu.
  • Android secara otomatis mematikan task/proses ketika membutuhkan memory
  • Android secara otomatis mematikan task/proses ketika task/proses itu sudah selesai dilakukan
  • Android secara otomatis mematikan task/proses ketika user tidak menggunakannya dalam waktu lama
  • Hampir semua services yang berjalan di background menggunakan sedikit memory ketika aktif tapi tidak melakukan sesuatu.
  • Mematikan paksa aplikasi/task/proses memiliki efek samping yang tidak baik untuk system, karena CPU akan aktif untuk mengaktikan kembali task/proses yang dibutuhkan, dan memulai serangkaian proses untuk mengecek proses yang dibutuhkan.
Apa yang harus dilakukan: Biarkan Android menangani tugas itu sendiri.
Jangan menginstal program seperti Advanced Task Killer untuk aplikasi auto-kill.
Gunakan ATK hanya bila Anda perlu untuk mematikan sebuah aplikasi yang mengalami gangguan.

Tidak ada komentar:

Posting Komentar