我正在 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