Если мы хотим анализировать истории замеров за несколько месяцев, то такой пропуск важных разладок может быть не очень приемлемым. Мне потребовалось перечитать статью раз 7, чтобы разобраться во всех тонкостях. Среднее значение и медиана остались на месте, а дисперсия увеличилась. Все это заслуживает отдельного доклада, поэтому опустим обсуждение технических деталей реализации и продолжим говорить в целом про подход. Аналогичную процедуру повторим со вторым распределением. Далее нужно подсчитать разницу между соответствующими квартилями в первом и втором распределении.
- При работе с этими метриками в голове часто возникает картинка нормального распределения.
- И мы сразу, в тот же день видим результат от этих креативов в отчетах.
- Чтобы процесс был эффективнее, могу дать вам пару советов.
- Самое важное в этой истории то, что у нас был анализ истории и мультимодальности распределений, поэтому мы мгновенно нашли проблему.
- Без Rqq для получения значения квантиля на отрезке нам бы пришлось каждый раз сортировать каждый отрезок, что значительно ухудшило бы производительность алгоритма в целом.
Игра в выбрасывание выбросов может легко увести нас в плохую сторону. Я хочу проиллюстрировать важность выбросов одним интересным примером. Он взят из книжки Кэндела 1991 года про изменения климата. И хотя на деле все было не совсем так, он все еще показателен.
Усеченное и винзоризованное среднее
Мы рассмотрели только несколько возможных характеристик, по которым можно сравнивать оценки. И мы должны быть очень аккуратны, чтобы не попасть в неприятную ситуацию, когда выбранная оценка на реальных данных будет давать далекие от ожидаемых результаты. Чтобы сделать медианное абсолютное отклонение консистентным со стандартным отклонением для нормального распределения, результат умножается на специальную константу. Из-за того, что среднее арифметическое не является робастным, выбросы заставляют прыгать значение среднего туда-сюда, что не совсем удобно для задач мониторинга. Но, как мы знаем, среднее арифметическое — это не всегда та метрика, которую мы хотим знать. К счастью, экспоненциальное сглаживание можно применить и к квантильным оценкам.
Речь идет о мобильной игре Idle Evil Clicker про пытки в аду. Для нее мы сделали креатив с пыткой, еще не существовавшей в игре. Высокие показатели рекламных перформанс тестирование метрик сподвигли разработчиков из Red Machine решил добавить фичу в продукт. Это пример ненамеренного закрытия задач обоих направлений маркетинга.
Что такое перформанс-тестирование
Психология так устроена, что вам может быть некомфортно искренне пытаться найти у себя проблемы. Ведь если окажется, что вы всё сделали неправильно, то все скажут, что вы тупой, ведь вы сделали ошибку. В обычном тестировании считается нормальным, что один человек пишет код, а другой его тестирует. Но вот в перформанс-тестировании такая практика не очень распространена. Привлеките к перформанс-анализу коллег, которые помогут найти возможные ошибки. При таком подходе вы не только исправите ошибки на ранних стадиях, но и очень многому научитесь.
Они хорошо решают ту задачу, для которой они создавались. Иногда они в каком-то виде могут решить вашу задачу и выдать более или менее вменяемые результаты. Но вот только в реальной жизни чаще всего можно использовать другие подходы, которые намного лучше справятся с вашими задачами. Если вам неохота во всё это вникать, то можете просто запомнить, что статистические тесты просто не нужны в перформанс-анализе.
Нагрузочное тестирование vs Тестирование производительности
В Rider у нас есть набор тестов, которые покрывают функциональность нашего пакетного менеджера. В том числе, они работают с официальным репозиторием пакетов nuget.org. За производительностью этих тестов мы методично следим.
Эта оценка очень удобна при рассмотрении нормального распределения. Зная только среднее значение и стандартное отклонение, вы можете быстро прикинуть интервалы, в которых находится заданная порция распределения. Нагрузочное и перформанс тестирование производительности ПО определяет ресурсные возможности digital-площадок при стандартных и повышенных нагрузках. В этом и вся прелесть адаптивного подхода, он справляется со многими проблемами сам без участия человека. После нескольких неудачных попыток нам удалось построить стабильную инфраструктуру для перформанс-тестов. Да, иногда бывают проблемы с ложным падениями, но их не так много.
Кто такой Performance Engineer, что делает, и какие еще названия у этой профессии
А еще у меня есть проект Perfolizer, в котором я собираю разные математические алгоритмы для надежного перформанс-анализа. Сейчас я работаю над новым статистическим движком, который должен значительно уменьшить вероятность возникновения подобных казусов. Основная часть итераций прошла примерно на 200ms, но есть отдельные итерации, которые заняли секунд.
Я люблю использовать паттерны шума на основе бета-распределения, которое определяется порядковым номером соответствующего элемента. Более сложной проблемой является выбор ширины столбиков. Одно неверное движение, и график получится переглаженным или недоглаженным. Полагаю, что вы подумали, что слева у нас примерно равномерное распределение, а справа четырехмодальное распределение. Но на самом деле обе гистограммы построены на одной и той же выборке.
Изучаем сырые данные
Есть некоторый процент ложноположительных результатов, но я трачу на их просмотр не более двух-трёх минут в день. Зато мы каждый месяц успешно находим несколько довольно критичных реальных перформанс-проблем благодаря этой системе. А ещё можно сортировать распределения по наличию экстремально больших замеров. Если в распределении несколько чётко выраженных мод, то это также может оказаться плохим симптомом. Тут тоже есть определённый процент ложных результатов. Но самое главное, что в реальной жизни основная часть критичных проблем очень быстро попадает вверх такой таблице.
На практике мы не должны волноваться о всех деградациях, нас интересуют только самые большие деградации. Давайте теперь попробуем использовать всё это на практике. Представим, что мы сделали итераций некоторого бенчмарка и стабильно получали значение около одной минуты.