计时函数 clock() in c and c++

在MSDN中,查得对clock函数定义如下:

clock_t clock(void) ;

返回该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。

其中clock_t是用来保存时间的数据类型,它的定义如下

#ifndef _CLOCK_T_DEFINED

typedef long clock_t;

#define _CLOCK_T_DEFINED

#endif

在time.h文件中,还定义了一个常量CLOCKS_PER_SEC ,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

#define CLOCKS_PER_SEC ((clock_t)1000)

每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。

可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:

clock_t start, end;

double clockTime;

start = clock();

....functions.....
end = clock();
clockTime = ((double) (end - start))/CLOCKS_PER_SEC;

时间: 2024-12-28 20:32:40

计时函数 clock() in c and c++的相关文章

Linux下clock计时函数学习

平时在Linux和Winows下都有编码的时候,移植代码的时候免不了发现一些问题.1. 你到底准不准?关于clock()计时函数首先是一段简单的测试代码,功能为测试从文本文件读取数据并赋值给向量最后打印输出的运行时间. int main(int argc, char **argv){    clock_t t1=clock();ifstream in("data.txt");vector<int> v;for(int a;in>>a;v.push_back(a)

2.3 计时函数

例2-4 阶乘之和 输入n,计算S = 1! + 2! +3! +……+ n!的末6位(不含前导0).n <= 10^6,n!表示前n个正整数之积. 样例输入: 10 样例输出: 37913 程序 2-7 阶乘之和(1) #include<stdio.h> int main() { int n; scanf("%d", &n); int sum = 0; int i = 1; while (i <= n) { //factorial 保存 i 的阶乘值

Windows 各种计时函数总结

本文对Windows平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的 5种方法.分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在 Windows系统,也可以用于Linux系统.在Windows系统下三种,使用Windows提供的API接口timeGetTime(). GetTickCount()及QueryPerformanceCounter()来完成.文章最后给出了5种计时方法示例代码. 标准C/C++的

阶乘之和(防止int类型溢出的小技巧&amp;计时函数)

计算前n个正整数阶乘之和的后六位: 注意点是,用一个int类型储存阶乘之和时,要防止溢出 一,在每一次处理阶乘(fa)或者阶乘之和(s)时,都对10^6取余,这样最终结果不变,还避免了越界 二,计时函数可以用来观察程序执行时间 用法: printf("%f",(double)clock()/CLOCKS_PER_SEC); 代码: #include"iostream" #include"ctime" using namespace std; in

两个工具 输出中间结果,计时函数

1 #include <stdio.h> 2 #include <time.h> 3 int main() { 4 const int MOD = 1000000; 5 int n, s = 0; 6 //scanf("%d", &n); 7 n =10000000; 8 for (int i = 1; i <= n; i++) { 9 int factorial = 1; 10 for (int j = 1; j <= i; j++) 11

SetTmer函数调用 、取时间函数调用 、计时函数

SetTmer函数调用 #include <iostream> 取时间函数调用 计时函数

(二)linux的计时函数

linux的计时函数,用于获取当前时间. gettimeofday() 函数 结构体 精度 time() time_t s gettimeofday() struct timeval us 计时只使用gettimeofday()函数来获取当前时间: time()函数精度太低,gettimeofday()函数以微秒为单位,可获取us/ms/s的精度,足以满足日常计时需要. redis中的计时封装函数 /* * util_time.h * * Created on: 2018-6-4 * Autho

高精度 高分辨率 计时函数 Linux

在优化程序过程中,经常性的要统计时间,尤其是科学计算程序,只有在理解每一个部分占用的时间的基础上,才能做进一步的优化和分析. 但是常规的时间函数精度比较低,对某个函数执行时间的测量可能得到的结果为零,但是循环次数很多的情况下又会占用很大的时间,此处你可能会说可以将其他的地方屏蔽掉来单纯测量某一个函数执行多次的时间,但是这样编译器可能会做一些优化,直接或间接地影响测量的准确性. Linux 环境下 POSIX提供了一个纳秒(ns=10^-9s)级别的测量函数,这样就不会出现因为某个函数的执行时间过

C# 计时函数(毫秒)

using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; class Program { //调用API函数 [DllImport("kernel32.dll")] extern static short QueryPerformanceCounter(ref long x); [DllImport("kernel32.dll&qu