Three Hacks for Exceptional Focus

I hear from a lot of women that they really struggle with staying focused. I think that lack of focus can be exacerbated by the wealth of distraction at our fingertips. Our phones are constantly in…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Berkenalan dengan Cache dan Algoritma LRU Cache

Dalam pengembangan aplikasi modern, cache merupakan suatu hal yang lumrah untuk diterapkan. Cache berfungsi untuk meningkatkan performance dari suatu aplikasi. Salah software yang paling populer untuk mendukung penerapan cache di aplikasi adalah Redis.

Cache merupakan mekanisme penyimpanan data secara sementara dalam memori komputer, ketika ada permintaan data ke memori komputer maka data akan disediakan lebih cepat. Data yang disimpan merupakan data hasil proses komputasi yang dinilai memakan biaya tinggi dalam proses komputasinya (misal: koneksi ke basis data), atau bisa juga hasil data yang sering diakses dan jarang ada perubahan.

Untuk mempermudah memahami cache, saya akan memberikan sebuah contoh studi kasus penerapan cache pada suatu aplikasi.

Misal pada aplikasi e-commerce, ketika kita akan membeli suatu produk maka kita diarahkan untuk melakukan akses ke halaman detail produk yang akan kita beli. Misal URL-nya adalah.

Misal untuk mendapatkan semua data yang nantinya ditampilkan pada halaman detail produk terdapat banyak proses yang berat, selain itu sistem juga harus melakukan akses ke beberapa service, di antaranya:

Setiap service membutuhkan waktu 100ms untuk menyelesaikan tugasnya, jadi total yang waktu dibutuhkan 300ms/request untuk menampilkan semua data pada halaman detail produk.

Suatu aplikasi e-commerce tidak mungkin hanya diakses 1 user pada suatu waktu. Misal ada 100 user melakukan akses ke halaman detail produk yang sama, maka total waktu yang dibutuhkan komputer untuk melayani permintaan dari 100 user adalah 30000ms.

Tentu jika waktu yang dibutuhkan sebanyak itu maka user akan merasa bahwa aplikasi e-commerce yang diakses sangat lamban. Pada saat ini penggunaan cache akan sangat membantu dalam mempercepat proses.

Akses menggunakan cache

Misal untuk mengambil data dari cache hanya dibutuhkan waktu 20ms, user pertama tetap membutuhkan waktu 300ms sampai request-nya dipenuhi, namun user setelahnya hanya membutuhkan waktu 20ms saja pada saat melakukan akses ke halaman detail produk sampai semua data ditampilkan.

Penggunaan cache merupakan salah satu solusi untuk meningkatkan performance aplikasi. Setiap solusi tentu ada tradeoff yang harus dibayarkan, salah satunya adalah cost dari memori itu sendiri. Selain itu data yang akan disimpan menjadi data persistence dan memiliki keterbatasan kapasitas penyimpanan.

Maka dari itu untuk meningkatkan kinerja cache dan menekan biaya penggunaan terdapat beberapa algoritma untuk melakukan management cache, salah satunya adalah Least Recently Used.

Merupakan suatu algoritma page replacement yang sering digunakan dalam arsitektur komputer. Algoritma ini menerangkan bagaimana komputer melakukan manajemen memori dan alokasi memori sehingga proses di dalamnya menjadi lebih cepat.

Sesuai namanya, cara kerja algoritma LRU adalah mengurutkan posisi cache berdasarkan item yang paling baru digunakan dan menghapus cache yang paling lama tidak dipakai jika telah melebihi kapasitas penyimpanan yang telah ditentukan.

Misal kita memiliki 5 kotak kosong dalam memori komputer, 5 kotak kosong ini akan digunakan sebagai tempat untuk menyimpan cache dan menerapkan algoritma LRU untuk melakukan management memori dan alokasi memori.

Ketika insert data memiliki konsep yang mirip dengan Stack, setiap item baru akan berada pada urutan paling depan, dan akan menggeser +1 item yang sebelumnya menempati posisi depan jika ada.

Proses put data dalam blok memori komputer

Lalu jika terjadi operasi get atau mengambil data dari cache, data yang baru saja dibaca akan dipindah ke urutan paling depan, data lainnya akan digeser ke belakang dengan index+1. Perhatikan gambar berikut ini untuk mempermudah memahami konsep ketika operasi get data.

Get and reorder cache

Konsep terakhir dari algoritma LRU adalah jika terjadi penambahan data tetapi kapasitas data yang dapat disimpan telah sesuai dengan kapasitas maksimal, maka data yang akan dihapus adalah data yang paling lama tidak digunakan, atau untuk memudahkan adalah data yang posisinya berada paling belakang.

Proses put data jika memori telah penuh

Add a comment

Related posts:

sobre ansiedade

Me protege de perigos eminentes,. “sobre ansiedade” is published by Manoela Ferraz Ramos.

Indigenous People Struggle to find their Voice in the Modern World

The Amazon rain forest is the world’s largest source of freshwater, the most biodiverse tropical rainforest, and culturally diverse region with over 400 different indigenous groups that live and call…

7 Reasons why you should learn programming in Python language.

Python is an object-oriented language, just like Java, Javascript, C++, C#, Perl, Ruby, and other main programming languages. For people aspiring to become software developers, learning this language…