我有一个辅助功能,可以执行一些非常昂贵的操作。
我正在尝试分析算法的主要部分,但这个辅助函数在内部被调用了很多。因此,测量的时间考虑了辅助功能的时间。
为了解决这个问题,我决定设置和恢复时间,使辅助功能看起来是瞬时的。我定义了以下宏:
#define TIME_SAVE struct timeval _time_tv; gettimeofday(&_time_tv,NULL);
#define TIME_RESTORE settimeofday(&_time_tv,NULL);
. . . 并将它们用作辅助函数的第一行和最后一行。但是,出于某种原因,辅助功能的开销仍然包括在内!
所以,我知道这是一个混乱的解决方案,所以我继续前进,但我仍然很好奇为什么这个想法不起作用。有人可以解释为什么吗?