_C_Quickpool_Report() — 高速プール・メモリー・マネージャー・レポートの生成
形式
#include <stdlib.h>
void _C_Quickpool_Report(void);言語レベル
拡張済み
スレッド・セーフ
はい
説明
_C_Quickpool_Report() 関数は、現行の活動化グループ内で高速プール・メモリー・マネージャーにより使用されるメモリーのスナップショットを含む、スプール・ファイルを生成します。 高速プール・メモリー・マネージャーが現行の活動化グループで使用可能にされていない場合、または統計収集が使用可能にされていない場合、レポートは、収集されるデータは何もないことを示すメッセージになります。
高速プール・メモリー・マネージャーが使用可能にされており、さらに統計収集が使用可能にされている場合、生成されるレポートは、統計収集が使用可能にされている間の各 16 バイトのメモリーに対する割り振り試行の回数を示します。 また、レポートは各プールに達した残りの割り振りの最大数 (ピーク割り振り) を示します。 指定したメモリー範囲に対してストレージ要求がなされない場合、そのメモリー範囲はレポートに含まれません。 最大セル・サイズ (4096 バイト) よりも大きい割り振りは、出力されません。
戻り値
この関数に対する戻り値はありません。
例
次の例では
_C_Quickpool_Init() を使用して、高速プール・メモリー・マネージャーを使用可能にします。 _C_COLLECT_STATS フラグを使用して情報を収集します。 収集された情報は、_C_Quickpool_Report() を使用して出力されます。#include <stdlib.h>
#include <stdio.h>
int main(void) {
char *p;
int i;
unsigned int cell_sizes[2] = { 16, 64 };
unsigned int cells_per_extent[2] = { 16, 16 };
_C_Quickpool_Debug_T dbgVals = { _C_COLLECT_STATS, 'A', 'B' };
if (_C_Quickpool_Init(2, cell_sizes, cells_per_extent) {
printf("Error initializing Quick Pool memory manager.\n");
return -1;
}
_C_Quickpool_Debug(&dbgVals);
for (i = 1; i <= 64; i++) {
p = malloc(i);
free(p);
}
p = malloc(128);
free(p);
_C_Quickpool_Report();
return 0;
}
/*****************Spooled File Output should be similar to:**********
Pool 1 (16 bytes, 1 peak allocations):
1-16 bytes: 16 allocations
Pool 2 (64 bytes, 1 peak allocations):
17-32 bytes: 16 allocations
33-48 bytes: 16 allocations
49-64 bytes: 16 allocations
Remaining allocations smaller than the largest cell size (4096 bytes):
113-128 bytes: 1 allocations
*******************************************************************/