0
点赞
收藏
分享

微信扫一扫

[Linux 进程控制(二)] 写时拷贝 - 进程终止

f12b11374cba 2024-02-05 阅读 15

借助c++11提供的steady_clock,实现了精确获取逻辑执行时间的方法,原理:当前时间 - 开始时间。
工具类文件Timer.h:

#pragma once
#include <chrono>

using namespace std::chrono;

// 记录执行代码消耗时间
class Timer
{
public:
    Timer() :m_begin(steady_clock::now()) {}; // 初始化列表
    void reset() { m_begin = steady_clock::now(); }; // 重置当前时间
    // 默认输出毫秒,如果函数逻辑简单建议使用微秒
    long long cost() const 
    {
        return duration_cast<std::chrono::milliseconds>(steady_clock::now() - m_begin).count();
    }
    // 微秒
    long long cost_micro() const
    {
        return duration_cast<std::chrono::microseconds>(steady_clock::now() - m_begin).count();
    }
    // 秒
    long long cost_seconds() const
    {
        return duration_cast<std::chrono::seconds>(steady_clock::now() - m_begin).count();
    }
private:
    time_point<steady_clock> m_begin;
};

包含工具头文件就可以使用了:

	#include"Timer.h"
	
    Timer timer; // 构造Timer对象,同时记录当前时间
    Case1(); // 需要获取执行时间的逻辑
    cout << "cost1 = "<< timer.cost(); // 得出执行时间

    timer.reset(); // 重置初始时间
    Case2(); // 另一个需要获取执行时间的逻辑
    cout << "cost2 = "<< timer.cost(); // 得出执行时间
举报

相关推荐

0 条评论