По вопросам, касающимся измерения или улучшения кода и эффективности приложений.

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

Хороший вопрос устанавливает цели производительности, которые должны быть достигнуты, а также другие ограничения. Попытка оптимизировать что-либо без измерения - это не вопрос или работа «производительности», а, скорее всего, личное развлечение - ожидайте, что вопрос без целей / измерений будет рассматриваться как таковой.

Производительность для многих программ представлена в обозначении big O, которое классифицирует, как изменяются требования к ресурсам алгоритма в ответ на изменение входной размер.

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

Двумя основными показателями эффективности являются

  • Пропускная способность (сколько за период времени). Пример единиц: транзакций в секунду (TPS), мегабайт в секунду (МБ / с), гигабит в секунду (Гбит / с), сообщений / запросов / страниц в секунду.
  • Задержка (как долго для действия). Например, время поиска 8 мс и время поиска 100 мс.

Задержка часто определяется статистическим показателем. Примечание. Задержки обычно не соответствуют нормальному нормальному распределениюи имеют очень высокие верхние пределы по сравнению со средней задержкой. Таким образом, стандартное отклонениебесполезно.

  • Средняя задержка. Среднее значение всех задержек.
  • Типичная или средняязадержка. Середина диапазона возможных задержек. Обычно это от 50% до 90% средней задержки. Поскольку это самая низкая цифра, о которой часто сообщают продавцы.
  • Процентная задержка. Число, которое меньше или равно N% времени. То есть 99 процентиль, если задержка не больше, чем 99 раз из 100.
  • Наихудшая или максимальная задержка. Максимальная задержка измеряется.

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

См. Также: optimizationprofilingassemblycompiler low-latencybenchmarking