void monitor_orcAction ( v_public entity, c_voidp args ) { #ifdef OBJECT_WALK c_base base; c_object or; monitor_orc trace = monitor_orc(args); time_t t; int count = 0; os_address totalSize; time (&t); base = c_getBase(entity); printf ("\r\n################# Start tracing ################## %s\r\n", ctime(&t)); printf ("Limit : %d\r\n", trace->extendCountLimit); if (trace->filterExpression) { printf ("Filter expression : %s\r\n", trace->filterExpression); } printf ("\r\n"); fflush(stdout); for (or = base->firstObject; or != base->lastObject; ) { or = c_header(or)->nextObject; monitor_object (or, trace); count++; }; ut_walk (u_collection(trace->refTree), display_orc, trace); printf ("\r\n"); printf (" %d for %d object headers (%d) and MM headers (%d)\r\n", trace->totalObjectCount * (C_SIZEOF(c_header) + MM_HEADER_SIZE), trace->totalObjectCount, C_SIZEOF(c_header), MM_HEADER_SIZE); totalSize = trace->totalSizeCount + trace->totalObjectCount * (C_SIZEOF(c_header) + MM_HEADER_SIZE); printf ("Total : %d (%.2f KB)\r\n", totalSize, (double)totalSize/1024.0); fflush(stdout); trace->totalSizeCount = 0; trace->totalObjectCount = 0; #else OS_UNUSED_ARG(entity); OS_UNUSED_ARG(args); #endif }
void monitor_trcAction ( v_entity entity, c_voidp args ) { c_base base; monitor_trc trace = monitor_trc(args); time_t t; os_address totalSize; time (&t); base = c_getBase(entity); printf ("\r\n################# Start tracing ################## %s\r\n", ctime(&t)); printf ("Limit : %d\r\n", trace->objectCountLimit); if (trace->filterExpression) { printf ("Filter expression : %s\r\n", trace->filterExpression); } printf ("\r\n"); if (trace->delta) { printf ("%6s (%8s) %8s %12s %-15s %-15s %s\r\n", "Delta", "ObjCount", "ObjSize", "TotalSize", "ObjectKind", "CollectionKind", "TypeName"); } else { printf ("%8s %8s %12s %-15s %-15s %s\r\n", "ObjCount", "ObjSize", "TotalSize", "ObjectKind", "CollectionKind", "TypeName"); } printf ("----------------------------------------------------------------------------------------------------------\r\n"); trace->totalCount = 0; trace->totalExtentCount = 0; trace->index = 0; if (trace->oKind == NO_ORDERING) { c_metaWalk (c_metaObject (base), metaobject, trace); } else { trace->orderedList = ut_tableNew (orderLeafs, trace); c_metaWalk (c_metaObject (base), orderedWalk, trace); ut_walk(trace->orderedList, orderedAction, trace); ut_tableFree(trace->orderedList, NULL, NULL, NULL, NULL); trace->orderedList = NULL; } printf ("\r\n"); printf (" %ld for %ld object headers (%d) and MM headers (%d)\r\n", trace->totalExtentCount * (C_SIZEOF(c_header) + MM_HEADER_SIZE), trace->totalExtentCount, C_SIZEOF(c_header), MM_HEADER_SIZE); totalSize = trace->totalCount + trace->totalExtentCount * (C_SIZEOF(c_header) + MM_HEADER_SIZE); printf ("Total : %d (%.2f KB)\r\n", totalSize, (double)totalSize/1024.0); trace->cycleNr++; }