Мне нужно измерить задержку декодирования сообщения (от 3 до 5 секунд) приложения с низкой задержкой.Как измерить латентность приложения с низкой задержкой C++
Я использовал следующий метод,
1. Get time T1
2. Decode Data
3. Get time T2
4. L1 = T2 -T1
5. Store L1 in a array (size = 100000)
6. Repeat same steps for 100000 times.
7. Print array.
8. Get the 99% and 95% presentile for the data set.
Но я получил колебания между каждым испытанием. Может ли кто-нибудь объяснить причину этого? Не могли бы вы предложить альтернативный метод для этого.
Примечание: Применение плотно петли (приобретение 100% CPU) и привязку к CPU с помощью набора задач commad
Сделайте больше образцов и получите среднее значение. В современной многозадачной системе колебания неизбежны, но, конечно, колебания могут также зависеть от того, как вы получаете время. –
Я использовал функцию gettimeofday, чтобы получить время – Janaka
В linux я использую 'clock_gettime' с' clockid_t' 'CLOCK_PROCESS_CPUTIME_ID', так как, надеюсь, только измеряет время процессора, затрачиваемого на конкретный процесс. Я также убеждаюсь, что тест изменяет некоторую примитивную переменную, которую я затем печатаю после того, как таймер остановился, чтобы компилятор не смог оптимизировать тест. – Galik