c++时间戳与毫秒

标签 c++

<分区>

我正在 RAM 中的文件系统上运行基准测试,我正在运行的当前测试大约需要 0.6 秒。为了获得好的数据,我需要确切地知道程序何时开始和结束。当前的方法给出了这个输出:Sat May 7 19:24:46 2016,但我还需要知道毫秒数。 该程序通过运行以下命令在 linux 中以 c++ 执行:g++ -std=c++11 2cprogram.cpp

std::time_t result = std::time(NULL);
std::cout << std::ctime(&result);

最佳答案

C++11 引入了新的 <chrono>图书馆。您可以使用 high_resolution_clock从中测量时间差,然后将其转换为 std::duration

#include <iostream>
#include <thread>

int main() {
    auto start = std::chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(std::chrono::duration<double, std::milli>(600));
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double, std::milli> elapsed = end-start;
    std::cout << "Waited " << elapsed.count() << " ms\n";
}

例子取自cppreference.com

关于c++时间戳与毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37091569/

相关文章:

c++ - C++ 查询中的获取和设置函数

c++ - 派生对象的 static_cast 是否总是选择大多数派生对象?

c++ - 使用 strtok 拆分字符串(嵌套)

C++循环展开,边界

c++ - 由 QStatusBar::showMessage() 引发的调整大小

c++ - 访问类 C++ 的所有私有(private)成员

Android Studio 在进行 NDK 开发时卡在 macOS 上

c++ - 为什么 puts() 函数没有在客户端 - 服务器套接字代码中打印多个输出?

c++ - 从文件中读取名字和姓氏

c++ - 在花括号内添加语句会改变代码功能吗?