広告スペース(バナー)
🔷Visual Basic(.NET) レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 38 / 68

メモ化(キャッシュ)で計算を高速化する

このレッスンでは、VB.NETでメモ化(キャッシュ)を使って計算を高速化する方法を学び、同じ計算を繰り返さない工夫を理解することを目標にします。「VB.NET メモ化 使い方」で調べている方向けです。

メモ化とは、一度計算した結果を保存しておき、同じ入力が来たときは再計算せずに保存しておいた結果を返す高速化のテクニックです。Dictionary(Of TKey, TValue)を使って計算結果を保存しておきます。

サンプルコードでは、cacheというDictionaryに計算済みの結果を保存し、SlowSquare()関数が呼ばれるたびにcache.ContainsKey(n)で既に計算済みかを確認しています。2回目以降の同じ入力では「キャッシュから取得」というメッセージが表示され、実際の計算をスキップしている様子が分かります。

初心者がよくつまずくのが、キャッシュを使うべきかどうかの判断です。計算コストが軽い処理にまでメモ化を導入すると、逆にキャッシュの管理コストの方が高くつくこともあるため、時間のかかる処理に絞って使うのが基本です。

実際の開発現場では、重い計算処理やAPIへの問い合わせ結果など、繰り返し発生しやすい高コストな処理にメモ化やキャッシュの仕組みがよく導入されます。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではVisual Basic(.NET)を直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
同じ計算を繰り返さない、高速な処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)