fsecs.c

来自「ICS 课程的Lab6」· C语言 代码 · 共 58 行

C
58
字号
/**************************** * 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 + =
减小字号Ctrl + -
显示快捷键?