Является ли время настенных часов или процессорного времени более реалистичным для имитации дополнительной работы? - PullRequest
0 голосов
/ 15 октября 2019

Время настенных часов измеряет фактическое истекшее время и включает время ожидания, в то время как время процессора измеряет только время, используемое для активной обработки инструкций.

Когда вы реализовали несколько параллельных структур данных и выполняете измерения, используя структуру, которая позволяет вамустановить параметр «рабочего времени»: для каждого вызова добавления и удаления моделируется некоторая дополнительная (полностью распараллеливаемая) работа.

Это реализовано с использованием настенных часов:

long endTime = System.nanoTime() + workTime;
while (System.nanoTime() < endTime); // busy wait

Альтернативный подход заключается в реализации этого с использованием процессорного времени:

long endTime = System.nanoTime() + workTime;
while (bean.getCurrentThreadCpuTime() < endTime); // busy wait

Какой из двух будетболее реалистичный способ имитации дополнительной работы?

Как это влияет на результаты, если вы выполняете больше потоков, чем имеется параллелизм на машине?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...