c ++时间戳,以毫秒为单位

时间:2016-05-07 17:26:29

标签: c++

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您应该使用clock_gettime()