gpt4 book ai didi

c++ - usleep 与 clock_gettime() 问题

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:49 24 4
gpt4 key购买 nike

我正在做一个微基准测试。我的代码看起来像这样

while(some condition){
struct timespec tps, tpe;
clock_gettime(CLOCK_REALTIME, &tps);

encrypt_data(some_data)

clock_gettime(CLOCK_REALTIME, &tpe);
long time_diff = tpe.tv_nsec - tps.tv_nsec;
usleep(1000);
}

但是,我在 usleep() 中设置的 sleep 时间实际上会影响我观察到的 time_diff。如果我使用上面的框架测量这段代码的执行,我得到的时间分别从 ~1.8us 到 ~7us 不等, sleep 时间分别为 100us 和 1000us。当 sleep 时间在仪表 block 之外时,为什么测量时间会随着 sleep 时间的变化而变化?

时间结果是多次运行的平均值。我正在使用 Ubuntu 14.04 来运行这段代码。对于加密,我使用的是来自 openssl 的 aesgcm。

我知道这不是进行微基准测试的最佳方法,但这不是这里的问题。

最佳答案

您是否禁用了 CPU 缩放?

sudo cpupower frequency-set --governor performance

参见 herehere .

关于c++ - usleep 与 clock_gettime() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42750429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com