#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <string.h>
class AutoTimer{
public:
AutoTimer(const char *msg){
_msg = msg;
gettimeofday(&begin, NULL);
}
~AutoTimer(){
gettimeofday(&end, NULL);
printf("%sTime: %d\n", _msg, (end.tv_sec - begin.tv_sec) * 1000000 + (end.tv_usec - begin.tv_usec));
}
private:
const char *_msg;
struct timeval begin, end;
};
int main(int argc, char **argv)
{
FILE *fp;
char file[100];
char line[256];
strcpy(file, argv[1]);
fp = fopen(file, "r");
{
AutoTimer t2("fgets ");
if (fp != NULL)
{
while (fgets(line, sizeof(line), fp));
}
}
{
char data[4*1024];
AutoTimer t3("fread ");
fseek(fp, 0, SEEK_SET);
while (fread(data, sizeof(char), sizeof(data)-1, fp) != 0);
}
fclose(fp);
}C++里的计数器class
最新推荐文章于 2024-07-27 18:49:42 发布
本文通过使用C++实现了一个简单的自动计时器类AutoTimer,用于测量两种不同文件读取方法(fgets与fread)的执行时间。通过对这些方法的时间消耗进行比较,可以评估其在特定场景下的效率。
2096

被折叠的 条评论
为什么被折叠?



