zoukankan      html  css  js  c++  java
  • 统计代码运行时间的方法

    0. C++代码运行时间统计(精确到纳秒(ns)):

    #include <iostream>
    #include <chrono>
    #include <iomanip>    
    using namespace std;
    
    void main()
    {
        auto start = chrono::high_resolution_clock::now();    //开始时间
    
        double db = 0;    //此处放代码
        for (int i = 0; i < 100000; i++)
        {
            db += i;
        }
    
        auto end = chrono::high_resolution_clock::now();    //结束时间
        __int64 duration = (end - start).count();
        cout << "程序运行时间:" << setprecision(10) << duration / 1000000000.0 << "s"
            << "" << duration / 1000000.0 << "ms" 
            << "" << duration / 1000.0 << "us"
            << endl;
    
        cin.get();
    }

        运行结果:

    1. C++代码运行时间统计:

    #include <iostream>
    #include <thread>    //包含此头文件
    
    using namespace std;
    
    void main()
    {
        clock_t start = clock();
    
    
        for (int i = 0; i < 1000; i++)
        {
            cout << "hello" << endl;
        }
    
    
        clock_t end = clock();
    
        cout << "程序运行时间:" << end - start << "ms" << endl;
        cin.get();
    }

    2. C/C++中计算代码运行时间:

    方法一:单位ms

    #include<iostream>  
    #include<Windows.h>  
    
    using namespace std;
    
    int main()
    {
        DWORD start_time = GetTickCount();    //开始时间;    GetTickCount()获取从操作系统启动开始所经过的毫秒数,返回值是DWORD类型
    
        for (int i = 0; i < 100000000; i++)
        {
            i++;
        }
    
        DWORD end_time = GetTickCount();    //结束时间;    
    
        cout << "运行时间为:" << (end_time - start_time) << "ms" << endl;
    
        system("pause");
        return 0;
    }

    方法二:单位s

    #include <iostream>   
    #include <ctime>  
    
    using namespace std;
    
    void main(void)
    {
        clock_t start, finish;
        double  duration;
    
        start = clock();    //开始时间;    clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t
    
        for(int i=0;i<100;i++)
            cout << "hello world" << endl;
    
        finish = clock();    //结束时间;
    
        duration = (double)(finish - start) / CLOCKS_PER_SEC;    //代码运行时间
    
        cout <<"代码运行时间为:"<< duration << " s" << endl;
    
        system("pause");
    }
  • 相关阅读:
    Java锁到底锁的到底是哪个对象?什么是锁对象
    什么是正向代理,什么是反向代理
    到底什么是线程安全
    为什么要使用接口,直接写是实现类不行吗
    Nginx配置学习(一)
    Zookeeper集群节点数量为什么要是奇数个?
    Redis 5 单实例数据迁移到Cluster
    Centos8安装Nginx1.18.0
    vmware workstation15 桥接模式互ping不通,虚机可以连通局域网其他机器解决方法
    MongoDB double类型保留2位小数
  • 原文地址:https://www.cnblogs.com/si-lei/p/9415946.html
Copyright © 2011-2022 走看看