exponenta event banner

clearCache

Очистить кэш для MemoizedFunction объект

Синтаксис

Описание

пример

clearCache(mfcn) очищает кэш для MemoizedFunction объект.

Мемоизация функции связана с функцией ввода, а не с функцией MemoizedFunction объект. Поэтому очистка переменной не очищает кэш, связанный с функцией ввода.

A MemoizedFunction объект не знает об обновлениях базовой функции. При изменении функции, связанной с функцией memoized, используйте clearCache для очистки кэша.

Примеры

свернуть все

Создание объекта мемуарной функции для sin и вызовите его несколько раз.

mf = memoize(@sin);
a = mf(0);
b = mf(pi/2);
c = mf(0);

Просмотр статистики для объекта.

mf.stats.Cache
ans = struct with fields:
         Inputs: {{1x1 cell}  {1x1 cell}}
        Nargout: [1 1]
        Outputs: {{1x1 cell}  {1x1 cell}}
       HitCount: [1 0]
      TotalHits: 1
    TotalMisses: 2

Очистите кэш объекта функции memoized и просмотрите статистику.

mf.clearCache
mf.stats.Cache
ans = struct with fields:
         Inputs: {}
        Nargout: []
        Outputs: {}
       HitCount: []
      TotalHits: 0
    TotalMisses: 0

Входные аргументы

свернуть все

Функция с семантикой мемуации, заданная как MemoizedFunction объект.

Совет

  • Две переменные, запоминающие одну и ту же функцию, совместно используют значения свойств кэша и объекта, например размер кэша. В следующем примере переменные a и b совместно использовать кэш и иметь одинаковое значение размера кэша.

    a = memoize(@svd);
    b = memoize(@svd);
    Очистка кэша для b (b.clearCache) также очищает кэш для aи любые другие переменные, которые мемуарируют svd функция.

  • Очистка переменной не очищает кэш, связанный с функцией ввода. Очистка кэша для MemoizedFunction объект, который больше не существует в рабочей области, создайте новый MemoizedFunction объект к той же функции и используйте clearCache на новом объекте. Кроме того, можно очистить кэш для всех MemoizedFunction с использованием clearAllMemoizedCaches функция.

См. также

Функции

Объекты

Представлен в R2017a