Всем привет! Меня зовут Газимагомед, я занимаюсь разработкой внутреннего распределённого профайлера Vision в Ozon. В этой статье я раскрою понятие профиля, расскажу о том, что такое распределённый профайлинг, чем отличается автоматический сбор профилей от ручного. А также рассмотрим проблемы, возникающие при построении профайлера. Что ж, усаживайтесь поудобнее, мы начинаем.
Рубрика «profiling»
Рецепт приготовления непрерывного профайлера в 2к24
2024-05-27 в 12:25, admin, рубрики: continuous profiling, ozon tech, profiling, VisionАнализируем bound checks в Go по CPU профилю
2022-02-13 в 10:42, admin, рубрики: amd64, asm, cpuprofile, Go, golang, performance, pprof, profiling, static analysis, высокая производительность, Компиляторы, системное программированиеСегодня мы будем анализировать бинарники на пару с CPU профилями, чтобы создать на их основе расширенные профили исполнения. Эти дополненные профили мы сможем использовать для оценки времени, которое программа тратит на проверки выхода за границу массивов и слайсов.
Ускоряем hugo на 20% простым изменением в пакете reflect
2022-01-14 в 21:47, admin, рубрики: binary search, Go, golang, Hugo, linear search, open source, profiling, reflect, reflection, высокая производительность, Компиляторы, ПрограммированиеНайти значительное узкое место в производительности стандартной библиотеки или зрелого приложения — это редкость.
Я был удивлён, когда в top10 списке CPU-профиля hugo при сборке digitalgov.gov на первой позиции находился метод reflect.Type.MethodByName()
.
flat flat% sum% cum cum%
8.84s 6.28% 6.28% 57.85s 41.10% reflect.(*rtype).MethodByName
7.93s 5.63% 11.92% 8.50s 6.04% reflect.name.readVarint
7.56s 5.37% 17.29% 111.79s 79.43% reflect.Value.call
7.53s 5.35% 22.64% 23.33s 16.58% runtime.mallocgc
7.29s 5.18% 27.82% 16.10s 11.44% reflect.name.name
В этой статье я расскажу вам о том, как так вышло и что с этим можно было бы сделать.
Как Android пришел к AAB? Что будет с APK? Разбор
2021-09-06 в 10:30, admin, рубрики: aab, android, apk, apple, Dalvik, development, Google, iOS, java, profiling, Блог компании Droider.Ru, приложения, программы, разработка, разработка игр, разработка мобильных приложений, Разработка под android, разработка приложений, разработка программ, Тестирование мобильных приложенийPHP-SPX простой профайлер трейсер для PHP
2021-05-16 в 10:51, admin, рубрики: blackfire, Magento, performance, php, php-spx, profiling, tideways, xhprof, высокая производительность, Разработка веб-сайтовРаботая с различными PHP проектами часто приходится дебажить приложение чтобы найти и исправить ошибку. Во многих случаях вполне хватает xDebug, однако он не подходит для всех задач. Иногда нужно понять почему та или иная страница долго загружается, что съедает так много памяти или просто как работает большой и запутанный код.
Читать полностью »
Оптимизация времени запуска Prometheus 2.6.0 с помощью pprof
2019-01-21 в 10:24, admin, рубрики: devops, goaling, profiling, prometheus, Блог компании Southbridge, Серверное администрирование, системное администрированиеВ Prometheus 2.6.0 оптимизирована загрузка WAL, что ускоряет процесс запуска.
Неофициальная цель разработки Prometheus 2.x TSDB — ускорить запуск, чтобы он занимал не более минуты. В последние месяцы появились сообщения о том, что процесс немного затягивается, и если Prometheus по какой-либо причине перезапускается, то это — уже проблема. Почти все это время загружается WAL (регистрация записи с упреждением), включающий образцы за последние несколько часов, которые еще предстоит сжать в блок. В конце октября мне, наконец, удалось разобраться в этом; результат — PR#440, снижающий время работы ЦПУ в 6,5 раз и время расчета в 4 раза. Рассмотрим, каким образом я добился этих улучшений.
Как запустить SQL Profiler Trace ночью, в определенное время?
2018-11-26 в 14:48, admin, рубрики: Jenkins, Microsoft SQL Server, mssql, mssqlserver, profiling, sql, администрирование windows, Администрирование баз данных, Администрирование БД, Серверное администрированиеКак запустить SQL profiler trace, когда проблему надо ловить с 3:00 до 3:30 утра? Делать это можно с помощью трейса на стороне сервера, но это крайне неудобно. Именно не сложно, а неудобно, и всегда лень. Наконец я решился автоматизировать это раз и навсегда. Вот так:
Поиск проблем производительности NodeJs приложения (с примерами)
2017-12-14 в 10:56, admin, рубрики: cpu, infinite loop, inspect, node.js, nodejs, profilingИз-за однопоточной архитектуры Node.js важно быть настороже высокой производительности вашего приложения и избегать узких мест в коде, которые могут привести к просадкам в производительности и отнимать ценные ресурсы CPU у серверного приложения.
В этой статье речь пойдет о том, как производить мониторинг загрузки CPU nodejs-приложения, обнаружить ресурсоемкие участки кода, решить возможные проблемы со 100% загрузкой ядра CPU.
В поисках перформанса, часть 2: Профилирование Java под Linux
2017-09-28 в 14:24, admin, рубрики: java, linux, perf, performance, performance optimization, profiling, Блог компании JUG.ru Group, высокая производительность, Разработка под LinuxБытует мнение, что бесконечно можно смотреть на огонь, воду и то, как другие работают, но есть и ещё кое-что! Мы уверены, что можно бесконечно говорить с Сашей goldshtn Гольдштейном о перформансе. Мы уже брали у Саши интервью перед JPoint 2017, но тогда разговор касался конкретно BPF, которому был посвящен доклад Саши.
На этот раз мы решили копнуть глубже и узнать фундаментальные проблемы мониторинга производительности и варианты их решения.
Читать полностью »
Жизнь Oracle I-O: трассировка логического и физического ввода-вывода с помощью SystemTap
2017-06-21 в 9:38, admin, рубрики: i/o, linux kernel, oracle, profiling, sql, systemap, tracing, Блог компании PG Day'17 RussiaПриглашаем всех специалистов принять участии в секции, посвященной коммерческим базам данных на PG Day'17 Russia! Александр Халухин из Deutsche Bank готовит интенсивный мастер-класс о диагностике производительности Oracle Database. Полный список выступлений смотрите в программе на сайте!
А мы продолжаем публиковать переводы статей от специалистов по базам данных из CERN. Сегодняшний материал является второй частью цикла статей, посвященных трассировке и отладке производительности Oracle DB с помощью SystemTap.
Эта статья посвящена отслеживанию логических и физических чтений в Oracle с помощью SystemTap. Здесь вы найдете несколько примеров, иллюстрирующих основные механизмы, используемые Oracle для выполнения физических и логических операций ввода-вывода, и узнаете, как создавать скрипты SystemTap для последующей диагностики и устранения неполадок ввода-вывода Oracle.
Читать полностью »