230
fprintf(output, " %-12s %-12s %-8s %-8s %-11s\n", "Rule", "Ticks", "Checks", "Matches", "Avg Ticks");
237
fprintf(output, " %-12s %-12s %-6s %-8s %-8s %-11s\n", "Rule", "Ticks", "%", "Checks", "Matches", "Avg Ticks");
231
238
fprintf(output, " ------------ "
237
245
for (i = 0; i < MIN(count, profiling_rules_limit); i++) {
238
fprintf(output, " %-12s %-12"PRIu64" %-8"PRIu64" %-8"PRIu64" %-8.2f\n",
246
double percent = (long double)summary[i].ticks /
247
(long double)total_ticks * 100;
249
" %-12s %-12"PRIu64" %-6.2f %-8"PRIu64" %-8"PRIu64" %-8.2f\n",
240
251
summary[i].ticks,
241
253
summary[i].checks,
242
254
summary[i].matches,
243
255
summary[i].avgticks);
371
ProfilingGenericTicksTest01(void) {
372
#define TEST_RUNS 1024
373
uint64_t ticks_start = 0;
374
uint64_t ticks_end = 0;
375
void *ptr[TEST_RUNS];
378
ticks_start = UtilCpuGetTicks();
379
for (i = 0; i < TEST_RUNS; i++) {
380
ptr[i] = malloc(1024);
382
ticks_end = UtilCpuGetTicks();
383
printf("malloc(1024) %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
385
ticks_start = UtilCpuGetTicks();
386
for (i = 0; i < TEST_RUNS; i++) {
389
ticks_end = UtilCpuGetTicks();
390
printf("free(1024) %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
392
SCMutex m[TEST_RUNS];
394
ticks_start = UtilCpuGetTicks();
395
for (i = 0; i < TEST_RUNS; i++) {
396
SCMutexInit(&m[i], NULL);
398
ticks_end = UtilCpuGetTicks();
399
printf("SCMutexInit() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
401
ticks_start = UtilCpuGetTicks();
402
for (i = 0; i < TEST_RUNS; i++) {
405
ticks_end = UtilCpuGetTicks();
406
printf("SCMutexLock() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
408
ticks_start = UtilCpuGetTicks();
409
for (i = 0; i < TEST_RUNS; i++) {
410
SCMutexUnlock(&m[i]);
412
ticks_end = UtilCpuGetTicks();
413
printf("SCMutexUnlock() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
415
ticks_start = UtilCpuGetTicks();
416
for (i = 0; i < TEST_RUNS; i++) {
417
SCMutexDestroy(&m[i]);
419
ticks_end = UtilCpuGetTicks();
420
printf("SCMutexDestroy() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
422
SCSpinlock s[TEST_RUNS];
424
ticks_start = UtilCpuGetTicks();
425
for (i = 0; i < TEST_RUNS; i++) {
426
SCSpinInit(&s[i], 0);
428
ticks_end = UtilCpuGetTicks();
429
printf("SCSpinInit() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
431
ticks_start = UtilCpuGetTicks();
432
for (i = 0; i < TEST_RUNS; i++) {
435
ticks_end = UtilCpuGetTicks();
436
printf("SCSpinLock() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
438
ticks_start = UtilCpuGetTicks();
439
for (i = 0; i < TEST_RUNS; i++) {
442
ticks_end = UtilCpuGetTicks();
443
printf("SCSpinUnlock() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
445
ticks_start = UtilCpuGetTicks();
446
for (i = 0; i < TEST_RUNS; i++) {
447
SCSpinDestroy(&s[i]);
449
ticks_end = UtilCpuGetTicks();
450
printf("SCSpinDestroy() %"PRIu64"\n", (ticks_end - ticks_start)/TEST_RUNS);
358
455
#endif /* UNITTESTS */