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

来源:互联网 发布:毛笔字软件 编辑:程序博客网 时间:2024/06/05 02:10
/*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;}#endifvoid 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