Chrono库给出0作为经过的时间 - 错误的代码?

时间:2016-09-11 18:28:59

标签: c++ clock

晚上好的编码员, 我是C ++的新手,在寻找答案后我没有找到有用的答案。我现在正在测试#pragma pack,并希望将访问速度与未对齐的内存进行比较,因此我有一些结构我想测试经过的时间。

struct ReallySlowStruct {
    char c : 6;
    __int64 d : 64;
    int b : 32;
    char a : 8;
};

并且

int main() {
    struct ReallySlowStruct s;

    std::chrono::steady_clock::time_point begin = std::chrono::high_resolution_clock::now();
    s.a = 'c';
    s.d = 100;
    s.b = 50;
    s.a = 'a';
    std::chrono::steady_clock::time_point end = std::chrono::high_resolution_clock::now();
    std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(end - begin).count() << std::endl;
    system("pause");
    return 0;
}

这就是我发现如何使用Chrono库测量经过的时间。但是,输出始终为0,我不知道为什么。我尝试过不同的时钟,以及不同的时间单位,但它总是为零。任何人都可以解释它有什么问题吗?我正在使用VS 2013.

0 个答案:

没有答案