Применение возможностей анализа на уровне кода тестирования производительности
Применение возможностей анализа на уровне кода тестирования производительности

Помимо автоматического построения топологии, Анализ уровня кода Способность также является очень важной способностью.。Топология связиМожет помочь инженерам по тестированию производительностиБыстро определите, какой экземпляр имеет исключениеАнализ уровня коданоИди дальше。Топология связи Показывает метод запроса одного экземпляра по ссылке.Логика выполнения и время выполненияиИнформация о возможных исключениях,Предоставьте инженерам-испытателям возможность выполнять задачи. На основании представленных данных,Инженеры по тестированию производительности могут провести углубленный анализ по следующим аспектам:

Вызов трудоемкого анализа

Время звонка: Анализ. уровня кодав способностиОсновная часть,Система отображает подробную информацию о методе, использованном для выполнения текущего запроса в этом экземпляре.,включатьНазвание метода и информация, требующая много времени。в,Имя метода в основном относится к вызываемому в данный моментНазвание каждого метода,Вообще говорявключать ЧтоИнформация о параметрах,Инженерам-испытателям удобно определять, где находятся аномальные точки.В каком коде。Информация, требующая много времени, относится к текущему методу.Время завершить исполнение

Оптимизация производительности – важный аспект,и Длительный анализ кода(Также известно как профилирование производительности илиprofiling)является важным шагом в выявлении узких мест и повышении эффективности программы.。Ниже я приведу простойPythonПример, демонстрирующий, как использоватьcProfileмодуль для выполнения трудоемкого анализа。

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

Пример кода

Сначала мы создаем простой скрипт с некоторыми функциями, измеряющими время выполнения.

Язык кода:javascript
копировать
import timeimport random​def slow_function():    print("Начать выполнение медленной функции...")    time.sleep(random.randint(5, 8))  # Имитация трудоемких операций    print("Медленное выполнение функции завершено.") def fast_function():    print("Быстрое выполнение функции...")    time.sleep(random.randint(1, 6)/10)  # Имитация более быстрых операций    print("Быстрое выполнение функции завершено.") def main():    print("Основная программа начинает выполняться...")    slow_function()    for _ in range(1):        fast_function()    print("Выполнение основной программы завершается.")​if __name__ == "__main__":    main()if __name__ == "__main__":    import cProfile    cProfile.run('main()', sort='cumulative')

Вот-s cumtimeилиsort='cumulative'Параметр указывает, что выходные результаты сортируются по совокупному времени.,Таким образом, вы сможете увидеть, какие функции занимают больше всего времени.

Результаты бега следующие:

аналитический отчет

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

На картинке выше,action=zpblog&appname=pcsearch&sid=xxxxxxЭто интерфейс, который обрабатывает запросы пользователей в текущем экземпляре.。Это отнимает много времени225Миллисекунды указывают текущее время, затрачиваемое интерфейсом.225Обработка завершена за миллисекунды。

конечно,Каждая аналитическая платформа может представлять это по-своему.,Но логика реализации последовательная,Система использует визуальноеВиды, цвета и цифры,Позвольте инженерам по тестированию быстро понять, сколько методов прошел тестовый запрос.,Сколько времени занимает каждый метод? Если есть метод, который занимает много времени,Инженеры по тестированию могут быстроИмя экземпляра, IP, имя метода, затраты времениждать Информация передана аналитикамили Инженер-разработчик,Они могут уточнить направление анализа проблемы на основе данных стресс-тестов и назвать данные, требующие много времени.

SQL-анализ

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

Аналитическая платформа автоматически фиксируетвызовсвязанный с КитаемиизОператоры SQL и их затраты времени,Для каждого вызова SQL собирается и отображается полный оператор SQL.,включатьпараметры запросаждать。Если инженер по тестированию обнаружит, что узким местом производительности являетсяS0Lвызов,как обычноselect* или большое количество операторовwhereждатьноможет быть полнымSQLзаявлениекопировать并提交给Инженер-разработчикилиDBA(администратор базы данных),Провести идентификацию и устранение проблем.

SOL相关из性能问题不仅仅даЕсть проблема с написанием предложений,Конфигурация пула соединений необоснованнатакже приведет кSQLзаявление Длительное время выполнения,Эта ситуация часто проявляется в том, что в методе gelConnection базы данных требуется много времени.,Если база данныхНеправильная конфигурация пула соединений.,появитсяАналогичные проблемы с производительностью при большом количестве подключений к базе данных.

Анализ аномалий

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

Таким образом, аномальный анализ и аномальное сохранение полевых данных также являются двумя важными возможностями. Обычный анализ в основном включает в себя различные исключения, возникающие во время выполнения кода.,как обычноИсключение нулевого указателяИсключение выхода за пределы массива, исключение, связанное с базой данныхждать。Эти аномалии приведут к значительному снижению вероятности успеха во время реального стресс-тестирования.,Такие проблемы необходимо обнаруживать и решать как можно скорее.,Сохранение данных об исключениях, а затем внимание к типу исключения.,Код исключения、Используйте рамки。ПринадлежностьПриложение, протокол запроса, имя потока, стек потокаждатьинформация,Инженеры-испытатели могут использовать платформу анализа, чтобы максимально сохранить аномальный участок.,Оставьте это инженеру-разработчикуАнализируйте и исправляйте

Анализ журналов

Анализ журналов в настоящее время является широко используемым методом.,Когда возникает исключение,Инженер по тестированию также войдет на сервер, на котором находится тестируемое приложение.,время прохождения,Такая информация, как протестированный интерфейс, анализируется в массивных журналах.,Эффективность устранения неполадок низкая. Из-за большого объёма логов,Даже если вы фильтруете по периоду времени стресс-теста,Есть еще много данных,Инженер по тестированию не может точно определить, создается ли выходной журнал в рамках этого сценария стресс-теста.,Это также может быть ошибка журнала, вызванная другими неправильными операциями.。Таким образом, на основе ссылок Анализ Также появилась функция журналов.

упоминалось ранее,Анализ ссылок реализован на основе технологии зондирования и улучшения байт-кода.,Возможность использования общих компонентовВыполнение динамического инструментария。существовать Анализ журналовсцена,Зонды будут инструментировать общие системы ведения журналов.,отисуществовать Когда возникает ошибка в кодеАвтоматически получать соответствующие выходные данные журнала,отображается на платформе. Это имеет следующие два преимущества:

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

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

Если вы что-то приобретете после прочтения, ваше внимание, лайки, пересылки, комментарии и т. д. - моя самая большая поддержка! ! !

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.