_C_Quickpool_Report ()- Generar informe de gestor de memoria de agrupación rápida
Formato
#include <stdlib.h>
void _C_Quickpool_Report(void);Nivel de idioma
Ampliada
De hebra segura
Sí
Descripción
La función _C_Quickpool_Report() genera un archivo en spool que contiene una instantánea de la memoria utilizada por el gestor de memoria de agrupación rápida en el grupo de activación actual. Si el gestor de memoria de agrupación rápida no se ha habilitado para el grupo de activación actual o si la recopilación de estadísticas no se ha habilitado, el informe será un mensaje que indica que no se recopilan datos.
Si se ha habilitado el gestor de memoria de agrupación rápida y se ha habilitado la recopilación de estadísticas, el informe que se genera indica el número de intentos de asignación para cada 16 bytes de memoria durante el tiempo en que se ha habilitado la recopilación de estadísticas. Además, el informe indica el número máximo de asignaciones pendientes (asignaciones máximas) que se alcanza para cada agrupación. Si no se realizan solicitudes de almacenamiento para un rango de memoria determinado, dicho rango de memoria no se incluirá en el informe. No se genera ninguna salida para asignaciones mayores que el tamaño máximo de celda (4096 bytes).
Valor de retorno
No hay ningún valor de retorno para la función.
Ejemplo
_C_Quickpool_Init() para habilitar el gestor de memoria de agrupación rápida. Utiliza el distintivo _C_COLLECT_STATS para recopilar información. La información recopilada se imprime utilizando _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
*******************************************************************/