📄 fsecs.c
字号:
/**************************** * High-level timing wrappers ****************************/#include <stdio.h>#include "fsecs.h"#include "fcyc.h"#include "clock.h"#include "ftimer.h"#include "config.h"static double Mhz; /* estimated CPU clock frequency */extern int verbose; /* -v option in mtest.c *//* * init_fsecs - initialize the timing package */void init_fsecs(void){ Mhz = 0; /* keep gcc -Wall happy */#if USE_FCYC if (verbose) printf("Measuring performance with a cycle counter.\n"); /* set key parameters for the fcyc package */ set_fcyc_maxsamples(20); set_fcyc_clear_cache(1); set_fcyc_compensate(1); set_fcyc_epsilon(0.01); set_fcyc_k(3); Mhz = mhz(verbose > 0);#elif USE_ITIMER if (verbose) printf("Measuring performance with the interval timer.\n");#elif USE_GETTOD if (verbose) printf("Measuring performance with gettimeofday().\n");#endif}/* * fsecs - Return the running time of a function f (in seconds) */double fsecs(fsecs_test_funct f, void *argp) {#if USE_FCYC double cycles = fcyc(f, argp); return cycles/(Mhz*1e6);#elif USE_ITIMER return ftimer_itimer(f, argp, 10);#elif USE_GETTOD return ftimer_gettod(f, argp, 10);#endif }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -