memoize
Cria uma versão de uma função que guarda seus resultados em cache.
Categoria: Software Development Tools > Performance and Memory
Sintaxe
m = memoize(fun)
Retorna um objeto de função memoizada para o function handle fun.
Descrição
A primeira chamada m(x) executa fun(x) e guarda entradas e saídas. Chamar de novo com entradas iguais devolve a saída guardada sem executar fun. Isso compensa quando o mesmo cálculo caro se repete, por exemplo dentro de um laço ou em uma definição recursiva.
O objeto tem as propriedades Enabled (liga ou desliga o cache) e CacheSize (quantos resultados são mantidos, 10 por padrão), e as funções stats e clearCache o inspecionam e o reiniciam. Não memoize funções cujo resultado depende de números aleatórios, arquivos ou do relógio.
Argumentos de entrada
fun- Function handle a ser envolvido. Deve ser determinístico: mesmas entradas, mesmas saídas, sem efeitos colaterais relevantes.
Argumentos de saída
m- Um objeto
matlab.lang.MemoizedFunction, chamado como a função original.
Exemplo
Acertos e falhas
f = memoize(@(x) x^2);
a = f(3)
b = f(3)
s = stats(f);
fprintf('hits %d, misses %d\n', s.Cache.TotalHits, s.Cache.TotalMisses)
a = 9
b = 9
hits 1, misses 1
Veja também
MemoizedFunction stats clearCache clearAllMemoizedCaches timeit