주요 콘텐츠

clearCache

MemoizedFunction 객체의 캐시 지우기

설명

clearCache(mfcn)MemoizedFunction 객체의 캐시를 지웁니다.

함수의 메모이제이션은 MemoizedFunction 객체가 아닌, 입력 함수와 연결됩니다. 따라서 변수를 지워도 해당 입력 함수와 연관된 캐시는 지워지지 않습니다.

MemoizedFunction 객체는 기본 함수에 대한 업데이트를 인식하지 못합니다. 메모이제이션이 적용된 함수와 연결된 함수를 수정하는 경우 clearCache를 사용하여 캐시를 지우십시오.

예제

예제

모두 축소

sin 함수의 메모이제이션된 함수 객체를 만들고 여러 번 호출합니다.

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

객체에 대한 통계량을 확인합니다.

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

메모이제이션이 적용된 함수 객체 캐시를 지우고 통계량을 확인합니다.

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

입력 인수

모두 축소

메모이제이션 의미 체계가 적용된 함수로, MemoizedFunction 객체로 지정됩니다.

  • 동일한 함수를 메모이제이션하는 두 변수는 캐시와 객체 속성값(예: 캐시 크기)을 공유합니다. 다음 예에서, 변수 ab는 캐시를 공유하며, 동일한 캐시 크기 값을 가집니다.

    a = memoize(@svd);
    b = memoize(@svd);
    b(b.clearCache)의 캐시를 지우면 a의 캐시와 svd 함수를 메모이제이션하는 다른 모든 변수도 지워집니다.

  • 변수를 지워도 해당 입력 함수와 연결된 캐시는 지워지지 않습니다. 작업 공간에 더 이상 존재하지 않는 MemoizedFunction 객체의 캐시를 지우려면 동일한 함수에 대한 새 MemoizedFunction 객체를 만들고, 이 새 객체에 clearCache 함수를 사용하십시오. 또는, clearAllMemoizedCaches 함수를 사용하여 모든 MemoizedFunction 객체의 캐시를 지울 수 있습니다.

버전 내역

R2017a에 개발됨