Когда ключевая операция выполняется много раз, имеет смысл как-то сворачивать в число совокупность всех значений (получать интегральную характеристику) времени ее выполнения.
И глядя с противоположной стороны, собранные замеры всегда имеет смысл рассматривать на достаточно большой выборке – не менее 100 замеров.
Агрегировать можно по-разному: максимум, минимум, среднее, сумма, взвешенная сумма, методы математической статистики, методика APDEX. Не очень важно, как именно вы агрегируете или сворачиваете показатели. Важно, чтобы ваш заказчик понимал, в чем эта свертка заключается и почему она корректна.
Фирма «1С» считает, что удобной и корректной является методика APDEX. Эта методика используется в составе подсистемы «Оценка производительности» из Библиотеки стандартных подсистем. Подробную информацию об этой методике можно найти в Интернете (на английском языке): http://apdex.org/index.html, http://en.wikipedia.org/wiki/Apdex.
Смысл методики таков: если какое-то действие должно выполниться за T секунд и оно выполняется за эти T секунд или быстрее, оно считается успешно выполненным. Если оно выполняется несколько дольше – от Т до 4Т, оно считается наполовину успешным. Если оно выполняется очень долго – свыше 4Т, оно считается неуспешным.
Если действия выполнялись неоднократно (N раз), далее достаточно подсчитать успешно выполненные действия (пусть их будет NS), подсчитать наполовину успешные (пусть их будет NT).
Число (NS + NT /2) / N показывает отношение успешных и наполовину успешных действий к общему количеству действий.
Что такое Т и 4Т, с точки зрения пользователя:
В таблице 3.2.1 показано, какие качественные значения соответствуют количественным значениям показателей APDEX.
Таблица 3.2.1. Соответствие качественных оценок значениям APDEX
| Шкала APDEX | ||
|---|---|---|
| Значение | Оценка | |
| от | до | |
| 0.00 | 0.50 | неприемлемо | 
| 0.50 | 0.70 | очень плохо | 
| 0.70 | 0.85 | плохо (в некоторых интерпретациях – удовлетворительно) | 
| 0.85 | 0.94 | хорошо | 
| 0.94 | 1.00 | отлично | 
В случае 100-кратного выполнения действия на практике это выглядит так, как показано в таблице 3.2.2.
Таблица 3.2.2. Примеры комбинаций N, NS и NT для 100-кратного выполнения действия и соответствующие им оценки APDEX (показаны комбинации для нижней границы диапазона, соответствующего оценке)
| (NS + NT /2) / N | Оценка | NS (успешных) | NT (наполовину успешных) | N – NS – NT (не уложившихся в 4Т) | 
|---|---|---|---|---|
| 0,94 – 1 | отлично | 94 | 0 | 6 | 
| 0,94 – 1 | отлично | 88 | 12 | 0 | 
| 0,85 – 0,93 | хорошо | 85 | 0 | 15 | 
| 0,85 – 0,93 | хорошо | 70 | 30 | 0 | 
| 0,70 – 0,84 | плохо | 70 | 0 | 30 | 
| 0,70 – 0,84 | плохо | 40 | 60 | 0 | 
| 0,50 – 0,69 | очень плохо | 50 | 0 | 50 | 
| 0,50 – 0,69 | очень плохо | 0 | 100 | 0 | 
| 0,00 – 0,49 | неприемлемо | Все, что еще хуже, чем две предыдущие строки | ||
Заказчики не сразу принимают такую схему, но для массовых замеров она действительно хороша, так как учитывает не двоичную логику результата (уложились/не уложились), а более сложную (уложились полностью/уложились в рамках допустимого/не уложились).
Соответствие качественной оценки «хорошо» значению показателя 0,85 и выше – это для бизнеса, т. к. решаются его задачи. При этом некоторые операции выполняются долго или не выполняются вообще (пользователи «страдают»). Но, поскольку может оказаться дешевле оплачивать «страдания» пользователей, чем оптимизировать систему до 1,00, это приемлемо с точки зрения бизнеса.
Повторим еще раз: можно использовать любой подходящий для вашей ситуации способ свертки, лишь бы у вас с заказчиком по этому поводу было единое мнение. Если вы идете по пути встраивания подсистемы «Оценка производительности» из Библиотеки стандартных подсистем, то по сырым данным регистра сведений «Замеры времени» вы можете самостоятельно построить любую подходящую функцию, позволяющую яснее представить результат себе и заказчику. Свертка по методике APDEX в этой подсистеме, однако, уже реализована, и это еще один хороший повод пользоваться именно ей.
Существует обратная задача – получить целевое время по заданному значению APDEX, если заказчик затрудняется это целевое время назвать.
На практике, правда, в такой постановке эта задача встречается редко: список ключевых операций согласовывается до встраивания замеров в базу, а предлагаемая методика основывается на том, что замеры в базу уже встроены. Более вероятен вариант – использовать этот подход при необходимости переназначения и повторного согласования целевого времени, изначально заданного чересчур жестко.
Задачу необязательно решать вручную. В подсистему ОП встроен механизм автоматического подбора времени Т под заданное значение APDEX.
Если же требуется все-таки ручное решение, то порядок действий должен быть таким: