zoukankan      html  css  js  c++  java
  • clock_gettime测代码运行时间

    //函数原型:
    //	long clock_gettime (clockid_t which_clock, struct timespec *tp);
    //参数列表:
    //	CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变。
    //	CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响
    //	CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间
    //	CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间
    //返回值:
    //	0:成功,-1:错误,在errno中保存错误代码
    
    
    //目的:测代码运行时间
    
    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h> 
    #include <errno.h>
    
    void diff(struct timespec *start, struct timespec *end, struct timespec *interv)
    {
    	if((end->tv_nsec - start->tv_nsec) < 0)
    	{
    		interv->tv_sec = end->tv_sec - start->tv_sec-1;
    		interv->tv_nsec = 1000000000 + end->tv_nsec - start->tv_nsec;
    	}else
    	{
    		interv->tv_sec = end->tv_sec - start->tv_sec;
    		interv->tv_nsec = end->tv_nsec - start->tv_nsec;
    	}
    	return;
    }
    
    void curr_time(struct timespec *time)
    {
    	clock_gettime(CLOCK_REALTIME, time);
    }
    
    int main()
    {
    	struct timespec start, end, interv;
    
    	curr_time(&start);
    	//do something here
    	curr_time(&end);
    	diff(&start, &end, &interv);
    	printf("cost time nsec %ld.
    ",interv.tv_sec * 1000000000 + interv.tv_nsec);
    }
    


  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3362327.html
Copyright © 2011-2022 走看看