Статистика: процессорное время против прошедшего времени. Что важнее?

9

При настройке производительности, что важнее:

  • Процессорное время или прошедшее время?
  • Существуют ли сценарии, в которых один из них важнее другого?

Пример: при настройке производительности время ЦП сократится на ~ 38%, а затраченное время увеличится на ~ 22%. Это улучшение ?

Введите код
источник
5
Важно для кого? Ваши требования могут отличаться от моих. Для большинства моих клиентов прошедшее время (количество времени, которое пользователи проводят в ожидании) гораздо важнее, чем процессорное время, поэтому нет, это не будет улучшением. Ваши процессоры выполняют меньше работы, но, по всей вероятности, для компенсации используются более ограниченные ресурсы (обычно ввод / вывод). У вас могут быть типы счетчиков bean-компонентов, которые оценивают время ЦП за истекшее время, потому что они настроены на оповещения о пиках ЦП или о том, что у вас есть. У них другие потребности, чем у ваших конечных пользователей, но вам может потребоваться удовлетворить и то, и другое. Я не думаю, что есть простой ответ.
Аарон Бертран
Если запрос выполняется очень часто, может ли сокращение ЦП привести к общему сокращению времени?
EnterTheCode
С примером, который вы привели, вряд ли.
Аарон Бертран

Ответы:

14

CPU Time - количество процессорного времени, затрачиваемое процессом. Это не указывает на продолжительность . «Истекшее время» представляет общую продолжительность задачи. Если в задании используется параллелизм 8 (т. Е. 8 потоков), и каждый поток используется со скоростью 100% в течение всей продолжительности задачи, время ЦП может составлять 8000 мс, а истекшее время - только 1000 мс.

Следовательно, более короткое «Истекшее время» указывает на более быстрое время отклика.

Вам может потребоваться более короткое время ЦП и более длительное время, если вы беспокоитесь о нагрузке на ЦП и не заботитесь о взаимодействии с пользователем.

Вы можете принять более длительное время ЦП, если это приведет к сокращению истекшего времени, поскольку это может указывать на то, что пользователь ожидает меньше, за счет более высокой загрузки ЦП.

Возможно, более важной метрикой для настройки запроса будет время ожидания .

Макс Вернон
источник
4

... при настройке производительности время ЦП сократится на ~ 38%, а затраченное время увеличится на ~ 22%. Это улучшение?

Это полностью зависит от того, что вы оптимизируете и почему. В самом общем смысле - скорость вывода запросов - это не улучшение, как отметил Макс Вернон в своем ответе.

Однако если ваша система привязана к процессору, это будет улучшением, поскольку вы уменьшите нагрузку на процессор. Фактически, если бы это было так, конечный результат мог бы также означать более быстрый возврат набора результатов.

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

Итак, в 95% случаев Макс абсолютно прав - это не улучшение. В оставшихся нескольких случаях это может быть улучшением.

Смеющийся Вергилий
источник