文档章节

【C++】【STL】利用chromo来测量程序运行时间与日志时间打印精确到微秒

muqiusangyang
 muqiusangyang
发布于 06/24 20:19
字数 251
阅读 15
收藏 0

直接上代码吧,没啥好说的。头疼。

#include <iostream>
#include <string>
#include <ctime>
#include <sstream>
#include <iomanip>
#include <thread>
#include <chrono>

using namespace std;

class LogTime {
public:
	LogTime() {}
	~LogTime() {}
	inline void Start() { this->start = std::chrono::system_clock::now(); }
	inline void End() { this->end = std::chrono::system_clock::now(); }

	std::string GetRunTime() {
		auto us_duration = std::chrono::duration_cast<std::chrono::microseconds>(this->end - this->start);
		auto ms_duration = std::chrono::duration_cast<std::chrono::milliseconds>(this->end - this->start);
		unsigned long ms = ms_duration.count();
		unsigned long us = us_duration.count();
		std::stringstream ss;
		ss << ms << " ms," << us << " us .";
		return ss.str();
	}

	std::string Now() {
		auto now = std::chrono::system_clock::now();
		auto m = now.time_since_epoch();
		auto diff = std::chrono::duration_cast<std::chrono::microseconds>(m).count(); //当前时间显示到微秒
		auto const ms = diff % 1000000;
		//auto diff = std::chrono::duration_cast<std::chrono::milliseconds>(m).count(); //当前时间显示到毫秒
		//auto const ms = diff % 1000;

		std::stringstream ss;
		std::time_t t = std::chrono::system_clock::to_time_t(now);
		ss << std::put_time(std::localtime(&t), "%Y-%m-%d %H.%M.%S") << "." << ms;
		return ss.str();
	}
private:
	std::chrono::system_clock::time_point start;
	std::chrono::system_clock::time_point end;
};

 

© 著作权归作者所有

共有 人打赏支持
muqiusangyang
粉丝 14
博文 38
码字总数 27071
作品 0
西安
程序员
私信 提问
自助Linux之问题诊断工具strace [转]

引言 “Oops,系统挂死了..." “Oops,程序崩溃了..." “Oops,命令执行报错..." 对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通...

文艺小青年
2017/07/13
0
0
Java中计算程序运行耗时的方法对比

Java中测试程序代码运行时间的方式有两种: 第一种:以毫秒为单位计算的。 long startTime=System.currentTimeMillis(); //下面是一些测试代码 for(int i=0;i<10000;i++){ System.out.print...

yzbty23
06/04
0
0
够用的 Python 写日志的知识——标准日志模块logging简介

前一段工作的时候用到了python写后台系统,需要把一些系统的行为记录下来。本着不要去重复发明轮子的精神,就去搜索了一下python的系统库本身是否有写日志的模块。果然有。python语言作为一门...

costaxu
2012/09/23
0
0
【原创】Percona 之 tcprstat 安装及使用

本文描述 tcprstat 工具的安装和使用。 ========== 我是分割线 ========== 【安装】 tcprstat 的源码管理方式使用的是 bzr 。bzr 的简介和相应客户端的安装可以参考《 安装和使用 TPCC-MySQL...

摩云飞
2013/08/26
0
0
C语言获取SYSTEMTIME

C语言中如何获取时间?精度如何?1 使用timet time( timet timer ) 精确到秒2 使用clockt clock() 得到的是CPU时间精确到1/CLOCKSPERSEC秒3 计算时间差使用double difftime( timet timer1,t...

二胡艺
2014/03/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot中filter的用法

一、在spring的应用中我们存在两种过滤的用法,一种是拦截器、另外一种当然是过滤器。我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别。 二、f...

xiaomin0322
28分钟前
5
0
java项目修改了更换了jdk版本报错进行修改

java项目原来用的是1.8版本的,改成1.7版本后,项目会报错,要进行的修改是 然后是clean一下项目,然后是选中项目的buildpath,然后是configurebuildpath,然后是看jdk是否进行修改...

myAll_myAll
40分钟前
4
0
Gartner 2018 数据库系列报告发布 巨杉数据库连续两年入选

近期,Gartner陆续发布了2018年的数据库系列报告,包括《数据库魔力象限》《数据库核心能力》以及《数据库推荐报告》。其中,SequoiaDB巨杉数据库作为业界领先的金融级分布式交易型数据库产品...

巨杉数据库
42分钟前
2
0
Navicat闲置一段时间卡死问题的解决

先关闭连接,再右键点击所需要设置的链接,进入编辑连接,进入高级项,勾选保持连续间隔(秒):时间设置短一些,比如30秒,完成!!

joyStalker
43分钟前
3
0
理解Java中的弱引用(Weak Reference)

1. What——什么是弱引用? Java中的弱引用具体指的是java.lang.ref.WeakReference<T>类,我们首先来看一下官方文档对它做的说明: 弱引用对象的存在不会阻止它所指向的对象变被垃圾回收器回...

绝地逢生
43分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部