Memahami MEMOISASI Dalam JavaScript
Memoisasi adalah teknik pengoptimalan yang dapat digunakan untuk mengurangi runtime perhitungan dengan menyimpan input sebelumnya ke sesuatu yang disebut cache dan mengembalikan hasil darinya.
Mari kita permudah,
- Misalkan Anda harus bekerja di apotek selama satu hari, bukan paman Anda. Ini hari pertama Anda di toko itu & pada jam pertama pelanggan datang dan meminta Anda untuk "tablet Paracetamol", sekarang karena ini hari pertama Anda, Anda tidak tahu tentang penempatan obat di toko besar itu.
- Sekarang Anda akan mulai mencari toko untuk obat tersebut, mungkin ada kasus terbaik bahwa laci pertama yang Anda buka penuh dengan tab Paracetamol dan juga mungkin ada kasus terburuk setelah mencari di seluruh toko Anda menemukan tab tersebut di laci terakhir.
- Mari kita lihat kasus terburuk, sekarang mencari seluruh toko menghabiskan banyak waktu, lalu Anda memberikan obat itu kepada pembeli itu.
- Sekarang jika ada orang lain yang datang dan meminta tab Paracetamol, tanpa mencari dan menghabiskan lebih banyak waktu, Anda dapat dengan mudah mengambil obat dari laci hafalan itu dan Anda memberikannya kepada pembeli dalam waktu singkat.
tetapi sekarang Anda tahu bahwa tab Parasetamol ada di laci khusus itu (Anda menghafalnya, Anda menyimpannya di suatu tempat)
Sama halnya,
Untuk memahami konsep yang luar biasa namun rumit ini, mari pelajari kodenya.
Di sini, saya telah menulis sebuah fungsi sederhana yang memicu loop dan menjalankannya 'n' beberapa kali, di mana 'n' adalah inputnya. Dan setiap kali for loop berjalan, itu akan menambahkan indeks ke jumlah, dan kemudian mengembalikan jumlah.
Sekarang ini adalah kode yang bagus untuk beberapa input kecil, tetapi jika inputnya besar maka ini akan sangat mahal.
Misalkan, saya ingin loop ini berjalan 1 Juta kali, Jadi, saya harus menulis kode
console.time();
console.log(calc(1000000));
console.timeEnd(); //this line will print runtime in 'ms'
console.time();
console.log(calc(1000000));
console.timeEnd(); //this line will print runtime in 'ms'
Menjalankan ini akan memakan waktu berapa lama login konsol terlampir di bawah ini:
Untuk input yang sama, loop akan berjalan 1 Juta kali setiap kali kita memberikan input 1 Juta, dan itu tidak bagus untuk software, tidak hemat biaya.
Jadi kita akan menggunakan teknik MEMOIZATION, dimana kita akan menyimpan nilai output, ketika input 1 Juta (atau apapun).
console.time();
console.log(ans(100000000));
console.timeEnd();
console.time();
console.log(ans(100000000));
console.timeEnd();
Di sini kita dapat melihat bahwa waktu yang dibutuhkan untuk menghitung 1 Juta pertama kali besar dalam 'ms' tetapi untuk waktu berikutnya, sekecil yang dapat diabaikan.
Saya harap ini membantu.
Artikel Terkait Lainnya :
- Membuat Situs Web dengan Nuxt.js dan WordPress REST API
- Mengapa Kebanyakan Developer Lebih Memilih JavaScript Daripada PHP?
- Inilah Beberapa Poin Penting Dari Style Guide JavaScript Google
- 10 Pertanyaan Wawancara Yang Harus Diketahui Bagi Setiap JavaScript Developer
- Bagaimana Cara Memilih Framework JavaScript Terbaik: React, Angular, atau Vue?