уснуть с проблемой clock_gettime ()

Я делал микробенчмарк. Мой код выглядит примерно так

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 (), фактически влияет на наблюдаемый time_diff, который я получаю. Если я измерил выполнение этого кода с использованием скелета выше, полученное время варьируется от ~ 1.8us до ~ 7us для времени ожидания 100us и 1000us соответственно. Почему измеренное время изменяется с изменением времени сна, когда время сна находится вне блока приборов?

Результаты по времени являются средними для нескольких прогонов. Я использую Ubuntu 14.04 для запуска этого кода. Для шифрования я использую aesgcm из openssl.

Я знаю, что это не лучший способ для микробенчмарка, но это не проблема здесь.

1

Решение

Вы отключили масштабирование процессора?

sudo cpupower frequency-set --governor performance

Увидеть Вот а также Вот.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]