文档章节

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

muqiusangyang
 muqiusangyang
发布于 06/24 20:19
字数 251
阅读 7
收藏 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
粉丝 11
博文 28
码字总数 17045
作品 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
【原创】Percona 之 tcprstat 安装及使用

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

摩云飞
2013/08/26
0
0
够用的 Python 写日志的知识——标准日志模块logging简介

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

costaxu
2012/09/23
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

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部