キャッシュ

1065 ワード

いずれの言語においても、プログラムの計算量が大きく、実行時間が長い場合は、計算結果を保存して、次回同じプログラムを実行する時に、保存した結果を直接に取得して、再計算する必要がなく、キャッシュといいます.
JavaScriptでの実装は以下の通りです.
function longTime(key){
    console.log('after 2000 years....');
    return key + '     ';
}
let cache = {};
function compute(param){
    let result;
    let key = param.toString();
    if(cache[key]){
                console.log('     ');
        result = cache[key];
                console.log(result);
    }else{
                console.log('       ');
        cache[key] = result = longTime(param);
                console.log(result);
    }
    return result;
}
//   
compute('key1');
compute('key2');
compute('key3');
compute('key3');
実行結果が見えます.
VM45407:14        
VM45407:2 after 2000 years....
VM45407:16 key1     

VM45407:14        
VM45407:2 after 2000 years....
VM45407:16 key2     

VM45407:14        
VM45407:2 after 2000 years....
VM45407:16 key3     

VM45407:10      
VM45407:12 key3     
"key3     "