広告スペース(バナー)
🟨JavaScript レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向8▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 39 / 69
メモ化(キャッシュ)で計算を高速化する
このレッスンでは、メモ化(キャッシュ)というテクニックを学び、重い計算を効率よく高速化できるようになることを目標にします。「JavaScript メモ化 とは」「JavaScript キャッシュ 実装」で調べている方向けの内容です。
メモ化は、一度計算した結果を「保管箱」に保存しておき、同じ入力が来たら計算し直さずに保管箱から取り出すテクニックです。「毎回同じ質問をされたら、覚えておいた答えをそのまま返す」ようなイメージです。時間のかかる重い計算を何度も繰り返す必要がなくなるため、アプリの応答速度を大きく改善できます。
サンプルコードでは、cacheというオブジェクトを保管箱として使い、slowSquare関数の中で「すでに計算済みか」をin演算子でチェックしています。すでに計算済みならキャッシュから即座に値を返し、まだなら計算してから結果をキャッシュに保存しています。同じ5を2回渡した際の表示の違いを確認してみましょう。
初心者がよくつまずくのが、キャッシュのキーとして何を使うべきかという設計です。引数が複数ある関数では、それらを組み合わせた文字列をキーにするなど工夫が必要になります。また、キャッシュを使いすぎるとメモリを消費し続けてしまうため、際限なく保存し続けない工夫も実務では求められます。
計算量の多い数値計算処理ほど効果が大きく、実務のパフォーマンス改善でもよく使われる考え方です。同じAPIリクエストを何度も送らないようにする通信のキャッシュなど、メモ化の考え方はさまざまな場面に応用されています。
JavaScript
OUTPUT / 実行結果
💡 console.log() の内容が実行結果に表示されます。
🎯
ここまでできればゴール達成!
同じ計算を繰り返さない、高速な処理が作れるようになります。
同じ計算を繰り返さない、高速な処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)