caching сайт В чем разница между кешированием и записью?




memoized (4)

Запоминание - это особая форма кэширования результата детерминированной функции. Это означает, что кеширование результата вне функции не является memoization, потому что функция должна будет мутировать кеш при вычислении нового результата (еще не в кеше), поэтому он больше не будет (чистой) функцией. Запоминание обычно подразумевает передачу кеша в качестве дополнительного аргумента (в вспомогательной функции). Memoization будет оптимизировать функции, которые необходимо вычислить значения несколько раз для одного доступа. Кэширование будет оптимизировать функции, которые вызываются несколько раз с теми же параметрами. Другими словами, Memoization оптимизирует первый доступ, будет ли кеширование оптимизировать повторный доступ.

Я хотел бы знать, какова фактическая разница между кешированием и записью. Как я вижу, оба включают в себя предотвращение повторных вызовов функций для получения данных путем их хранения.

В чем разница между ними?


Как я видел, они были использованы, «memoization» - это «кеширование результата детерминированной функции», которое может быть воспроизведено в любое время с той же функцией и входами.

«Кэширование» включает в себя в основном любую стратегию вывода-буферизации, независимо от того, воспроизводится ли исходное значение в данный момент времени. На самом деле кэширование также используется для обозначения стратегий буферизации ввода , таких как кеш-запись на диске или в памяти. Так что это гораздо более общий термин.


Memoization - это конкретная форма кэширования, которая включает кэширование возвращаемого значения функции на основе ее параметров.

Кэширование - более общий термин; например, кеширование HTTP - это кеширование, но не memoization.

Википедия says :

Хотя это связано с кэшированием, memoization относится к конкретному случаю этой оптимизации, отличающему ее от форм кеширования, таких как буферизация или замена страниц.


Я думаю, что кеширование термина обычно используется, когда вы сохраняете результаты операций ввода-вывода или в основном любые данные, поступающие к вам извне (файлы, сети, запросы db). Термическая memoization обычно применяется для хранения результатов ваших собственных вычислений, например, в контексте динамического программирования.







memoization