Memoisasi, yang mirip dengan menghafal tetapi khusus untuk komputer, adalah metode untuk mengoptimalkan kecepatan program dengan meningkatkan jumlah ruang yang digunakannya. Teknik ini secara langsung memerlukan bahwa sebuah program dibangun untuk mengingat perhitungan suatu fungsi, dan hasilnya disimpan dalam cache. Saat berikutnya fungsi dipanggil, program dapat mengambil perhitungan dari cache daripada mengulang perhitungan yang sama. Tidak seperti pengurangan kekuatan, yang mempercepat mesin berdasarkan kecepatan dan pertukaran ruang yang serupa, memoisasi bersifat portabel dan dapat digunakan di banyak mesin.
Pengguna mungkin tidak melihatnya, tetapi program membuat perhitungan sepanjang waktu. Ketika seseorang mengklik tombol pada program atau menggunakan fungsi bawaan, perhitungan diperlukan untuk membuatnya berfungsi. Seringkali, pengguna akan menggunakan fungsi yang sama beberapa kali tanpa perubahan apa pun. Tanpa memoisasi, meskipun program hanya melakukan perhitungan, program perlu melakukannya lagi. Ini membuat kecepatan program lebih lambat daripada jika menyimpan hasilnya.
Hasil perhitungan disimpan di area memori cache. Dengan memoisasi, ketika pengguna melakukan input yang sama atau serupa, program akan mengambil dari cache daripada melakukan perhitungan untuk mendapatkan jawabannya. Dengan melakukan ini, program menghemat waktu dan menjadi lebih optimal dan lebih cepat. Masukan mungkin mirip dan tidak persis sama, sehingga beberapa perhitungan mungkin tidak sepenuhnya akurat, tetapi ketidakakuratan biasanya sangat kecil dan tidak mungkin menyebabkan kesalahan.
Teknik memoisasi pada dasarnya melakukan pertukaran. Semua program dibangun dengan batasan ukuran dan waktu. Di sini, ukuran dikorbankan agar kecepatannya bisa meningkat. Hasil disimpan dalam cache, sehingga diperlukan lebih banyak memori untuk program. Jumlah memori yang dikorbankan sangat sedikit, karena cache terbatas dalam jumlah hasil yang dapat disimpan, tetapi masih menambah biaya ruang.
Teknik pengoptimalan trade-off lain yang serupa, tetapi tidak dapat diandalkan, adalah pengurangan kekuatan. Pengurangan kekuatan tidak mengurangi kekuatan program tetapi kekuatan perhitungan dengan memecahnya menjadi fungsi yang lebih lemah, lebih hemat memori. Misalnya, perkalian membutuhkan lebih banyak waktu untuk diproses daripada penambahan, sehingga rumusnya akan diubah untuk memungkinkan proses yang memakan waktu lebih sedikit. Teknik ini mampu mempercepat proses, tetapi penghematannya mungkin tidak terlihat di semua mesin dan hanya menghemat waktu kompilasi.