59
A
回答
60
5
我認爲術語緩存通常用於存儲IO操作的結果,或者基本上來自外部的任何數據(文件,網絡,db查詢)。術語記憶通常適用於存儲自己的計算結果,例如在動態編程的情況下。
23
正如我所見,他們使用「memoization」是「緩存確定性函數的結果」,可以在任何時間給予相同的功能和輸入重現。
「緩存」基本上包括任何輸出緩衝策略,無論源值在給定時間是否可重現。實際上,高速緩存也被用來指代輸入緩衝策略,例如磁盤或內存上的寫緩存。所以這是一個更通用的術語。
0
記憶是一種緩存確定性函數結果的特殊形式。這意味着將結果緩存到函數之外不是記憶,因爲函數在計算新結果(不在緩存中)時不得不改變緩存,所以它不再是(純)函數。記憶通常意味着將緩存作爲附加參數傳遞(在輔助函數中)。 Memoization將優化需要爲單次訪問多次計算值的函數。緩存將優化使用相同參數多次調用的函數。換句話說,Memoization將優化第一次訪問是否緩存只會優化經常訪問。
相關問題
- 1. 有什麼區別`和$(Bash中有什麼區別?
- 2. 有什麼區別? :和||
- 3. &&和||有什麼區別?
- 4. 「/」和「/ *」有什麼區別?
- 5. 有什麼區別:。!和:r!?
- 6. ==和===有什麼區別?
- 7. Appender和〜有什麼區別?
- 8. $ @和$ *有什麼區別?
- 9. is和=有什麼區別?
- 10. #.00和#。##有什麼區別?
- 11. `==`和`is`有什麼區別?
- 12. '=='和'==='有什麼區別?
- 13. /和/#/有什麼區別?
- 14. | 0和~~有什麼區別?
- 15. `&`和`ref`有什麼區別?
- 16. ==和===有什麼區別?
- 17. ==和===有什麼區別?
- 18. `{}`和`[]`有什麼區別?
- 19. JavaScript和=== ===有什麼區別?
- 20. difftime和' - '有什麼區別?
- 21. =和==有什麼區別?
- 22. xtype和別名有什麼區別?
- 23. Mixpanel:識別()和people.identify()有什麼區別?
- 24. 有什麼區別
- 25. 有什麼區別
- 26. 有什麼區別?
- 27. 有什麼區別?
- 28. 有什麼區別?
- 29. 有什麼區別
- 30. ....有什麼區別?
我想知道是否可以說「memoization是爲了緩存」,因爲「數組是稀疏數組」。換句話說,您只需「按需」存儲事物,而不是列舉每種可能的輸入組合。 –