打印程序执行时间的小工具

/*
note: This program is used to run a child program and caculate the time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ date         what to do                                                          @
@ 2010/01/08   create new file                                                     @
@                                                                                  @
@                                                                                  @
@                                                                                  @
@                                                                                  @
@                                                                                  @
@                                                                                  @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*/
#ifdef WIN
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <time.h>
void testfile();
int main(int arg, char **args){
	/* declare */
    clock_t startTime = 0;
    clock_t endTime = 0;
    char                cmd_p[4096]; /* comand buffer */
    int i;
    /* check parameter and make cmd */
    if(arg == 1){
    	goto USAGE_ERROR;
    }else{
    	cmd_p[0] = 0;
    	for(i = 1; i < arg; i++){
    		strcat(cmd_p, args[i]);
    		strcat(cmd_p, " ");
    	}
    }
    printf("Child program is:\n%s\n", cmd_p);
    	
	/* get start time */
    startTime = clock();
	/* run child program */
	system(cmd_p);
	/* caculate total time */
    endTime = clock();
    printf("start time: %d (ms)\tend time: %d (ms)\n", startTime, endTime);
    printf("Total time cost: %d (ms)\n", endTime-startTime);
    return 0;
USAGE_ERROR:
	printf("USAGE: runWithTime <child program cmd line>\n");
    return 1;
}
#else
#include   <stdio.h>
#include   <stdlib.h>
#include   <sys/time.h>
#define USTOMS(t)(t/1000)
void testfile();
int main(int   arg,   char   **args){
	/* declare */
    struct   timeval   start,stop,diff;
    char                cmd_p[4096]; /* comand buffer */
    int i;
    /* check parameter and make cmd */
    if(arg == 1){
    	goto USAGE_ERROR;
    }else{
    	cmd_p[0] = 0;
    	for(i = 1; i < arg; i++){
    		strcat(cmd_p, args[i]);
    		strcat(cmd_p, " ");
    	}
    }
    printf("Child program is:\n%s\n", cmd_p);
    gettimeofday(&start,0);
	/* run child program */
	system(cmd_p);
    gettimeofday(&stop,0);
    timeval_subtract(&diff,&start,&stop);
    printf("Total time cost: %d (ms)\n",diff.tv_sec*1000+USTOMS(diff.tv_usec));
    return 0;
USAGE_ERROR:
	printf("USAGE: runWithTime <child program cmd line>\n");
    return 1;
}    
int timeval_subtract(struct timeval* result, struct timeval* x, struct timeval* y){
    int nsec;
    if( x->tv_sec>y->tv_sec )
    return -1;
    if((x->tv_sec==y->tv_sec)&&(x->tv_usec>y->tv_usec))
    return -1;
    result->tv_sec=(y->tv_sec-x->tv_sec);
    result->tv_usec=(y->tv_usec-x->tv_usec);
    if(result->tv_usec<0)
    {
        result->tv_sec--;
        result->tv_usec+=1000000;
    }
    return 0;
}
#endif
void testfile(){
	int i;
    char                buffer[4296]; /* buffer */
    FILE *fp;
    memset(buffer, 0, sizeof(buffer));
	for(i = 0; i < 4166; i++){
		buffer[i] = 'a';
	}
	for(i = 0; i < 25617; i++){
	    fp = fopen("test.txt","a");
	    if(NULL == fp)return;
	    fputs(buffer, fp);
	    fclose(fp);
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值