欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

程序运行时间测试 - 使用libc 中 time 函数 实现秒级的运行时间检测

程序员文章站 2022-05-29 09:54:44
c 标准库中,有time 函数,可以返回 1970年1月1日 开始到现在的秒数,我们可以调用两次的时间差来计算程序运行时间: https://github.com/yaowenxu/Workplace/blob/master/timer/timetimer.c NAME time -- get ti ......

c 标准库中,有time 函数,可以返回 1970年1月1日 开始到现在的秒数,我们可以调用两次的时间差来计算程序运行时间:

https://github.com/yaowenxu/workplace/blob/master/timer/timetimer.c

name
     time -- get time of day

library
     standard c library (libc, -lc)

synopsis
     #include <time.h>

     time_t
     time(time_t *tloc);

description
     the time() function returns the value of time in seconds since 0 hours, 0 minutes, 0 seconds, january 1, 1970, coordinated univer-
     sal time, without including leap seconds.  if an error occurs, time() returns the value (time_t)-1.

     the return value is also stored in *tloc, provided that tloc is non-null.
/**
 * author: yaowen xu
 * github: https://github.com/yaowenxu
 * organization: 北航系统结构研究所
 * date: 2019-08-18 13:03:53
 * lastedittime: 2019-08-18 13:14:33
 * description: 使用 c 语言库 time 函数 对程序运行计时 以秒为单位
 */

#include <time.h>
#include <stdio.h>
#include <math.h>

int str2int(char* str){
    char *p = str;
    int sum = 0;
    while (*p != '\0')
    {
        sum = sum*10 + (*p-'0');
        p++;
    }
    return sum;
}

int main(int argc, char* argv[]){
    time_t start, stop; // time_t aka long 
    int def = 1000;
    if (argc == 2)
    {
        def = str2int(argv[argc-1]);
    }
    start = time(null);
    for (int i = 0; i < def ; i++)
    {
        float tmp = sqrt(i);
    }
    stop =  time(null);
    time_t total =  stop - start; // 使用运行的时间 以秒为单位
    printf("start: %ld s\n", start);
    printf("stop: %ld s\n", stop);
    printf("time: %ld s\n", total); // 总共使用的时钟
    return 0;
}

保持更新,如果对您有帮助,请点击推荐!更多关于c语言相关的知识,请关注 cnblogs.com/xuyaowen