メインコンテンツ

stats

MemoizedFunction オブジェクトのキャッシュされた値と統計を返す

説明

s = stats(mfcn) は、MemoizedFunction オブジェクトの使用についてキャッシュされた値と統計を返します。

すべて折りたたむ

関数 plus をメモ化して、MemoizedFunction オブジェクトを作成します。

mf = memoize(@plus)
mf = 
  MemoizedFunction with properties:

     Function: @plus
      Enabled: 1
    CacheSize: 10

メモ化された関数を複数回呼び出します。特定の入力のセットを使ってはじめてこの関数を呼び出すと、MATLAB® はその結果をキャッシュします。

a = mf(13,42);  % calls plus; caches results
b = mf(7,33);   % calls plus; caches results
c = mf(13,42);  % does not call plus; returns cached results
d = mf(5,120);  % calls plus; caches results
e = mf(13,42);  % does not call plus; returns cached results
f = mf(7,33);   % does not call plus; returns cached results

関数 stats を呼び出します。

s = stats(mf)
s = struct with fields:
                    Cache: [1×1 struct]
       MostHitCachedInput: [1×1 struct]
      CacheHitRatePercent: 50
    CacheOccupancyPercent: 30

どの入力のセットが最も多く使用されたかを判定します。

s.MostHitCachedInput
ans = struct with fields:
     Hits: 2
    Input: {[13]  [42]}

キャッシュされた結果を取得します。

c = s.Cache
c = struct with fields:
         Inputs: {{1×2 cell}  {1×2 cell}  {1×2 cell}}
        Nargout: [1 1 1]
        Outputs: {{1×1 cell}  {1×1 cell}  {1×1 cell}}
       HitCount: [2 1 0]
      TotalHits: 3
    TotalMisses: 3

キャッシュされたすべての入力と出力のセットを、キャッシュされた値に MATLAB がアクセスした回数と共に表示します。

T = cell2table([c.Inputs' c.Outputs'],'VariableNames',{'Inputs','Outputs'});
T.Times_Cache_Accessed = c.HitCount'
T=3×3 table
         Inputs          Outputs    Times_Cache_Accessed
    _________________    _______    ____________________

    {[13]}    {[ 42]}    {[ 55]}             2          
    {[ 7]}    {[ 33]}    {[ 40]}             1          
    {[ 5]}    {[120]}    {[125]}             0          

入力引数

すべて折りたたむ

メモ化セマンティクスをもつ関数。MemoizedFunction オブジェクトとして指定します。

出力引数

すべて折りたたむ

MemoizedFunction 統計。次のフィールドを含む構造体として返されます。

フィールド

説明

Cache

キャッシュされた結果。構造体として返されます。m が、結果がキャッシュされた関数呼び出しの数である場合、この構造体には以下のフィールドが含まれます。

  • Inputs – キャッシュされた入力値。1m 列の cell 配列として返されます。cell 配列 Inputs の各要素は、1n 列 (n は特定の関数呼び出しに対する入力の数) の cell 配列です。

  • Outputs – キャッシュされた出力値。1m 列の cell 配列として返されます。cell 配列 Outputs の各要素は、1p 列 (p は特定の関数呼び出しに対する出力の数) の cell 配列です。

  • HitCount – キャッシュされた一連の入力値のそれぞれがアクセスされた回数。1m 列の double 配列として返されます。

  • TotalHits – 一連の入力値がキャッシュ内で検出された合計回数。double として返されます。

  • TotalMisses – 一連の入力値がキャッシュ内で検出されなかった合計回数。double として返されます。

MostHitCachedInput

キャッシュされた値のうちアクセスの最も多かった値の入力。構造体として返されます。この構造体には、次のフィールドがあります。

  • Hits – キャッシュされた値がアクセスされた回数。整数として返されます。

  • Input – キャッシュされた値のうちアクセスの最も多かった値の入力値。入力値の cell 配列として返されます。

CacheHitRatePercent

キャッシュ内で入力が検出された回数の割合。double として返されます。このプロパティは (TotalHits/(TotalHits+TotalMisses))*100 によって計算されます。

CacheOccupancyPercent

キャッシュの占有率。割合を表す double として返されます。このプロパティは (Number of cache entries/cache size)*100 によって計算されます。

バージョン履歴

R2017a で導入

参考

関数

オブジェクト