ETTrace — это открытый
Домашняя страница InfoQ Новости ETTrace — это профилировщик с открытым исходным кодом для iOS, призванный упростить оптимизацию производительности
7 июня 2023 г., чтение на 2 минуты
к
Серджио Де Симоне
Недавно открытый исходный код компании Emerge Tools, создателя нескольких инструментов анализа для приложений iOS, ETTrace направлен на упрощение профилирования производительности iOS, предоставляя интуитивно понятную визуализацию и простоту работы.
ETTrace сталкивается с сильной конкуренцией со стороны интегрированного профилировщика плиток Xcode, который де-факто является стандартным решением для оптимизации производительности приложений iOS. Тем не менее, говорит инженер Emerge Tools Ноа Мартин, в Xcode Time Profiler есть что улучшить:
В Emerge я разговаривал со многими инженерами, работающими над большими приложениями, и все отзывы были одинаковыми: Time Profiler может работать нестабильно и медленно. Даже получив скриншоты для этой статьи, я столкнулся с несколькими зависаниями, и мне пришлось принудительно завершить работу. Символизация часто является проблемой: генерируются трассировки, в которых отображаются только адреса, но не имена функций.
Напротив, утверждает он, ETTrace использует график пламени, чтобы упростить выявление узких мест в производительности, и предоставляет простой в использовании инструмент командной строки, который профилирует приложение, работающее локально. Интегрировать ETTrace в приложение iOS так же просто, как связать платформу Objective-C и запустить ettrace в командной строке, чтобы при необходимости запустить и остановить профилирование. ETTrace также поддерживает возможность запуска трассировки сразу после запуска приложения, установив для ключа Info.plist ETTraceRunAtStartup значение YES.
Платформа может записывать стек приложения через фиксированные промежутки времени в файл трассировки, который затем используется для создания визуализации. ETTrace выбирает только основной поток, который является наиболее чувствительной ко времени частью приложения iOS, поскольку он отвечает за визуализацию пользовательского интерфейса и никогда не должен блокироваться. Затем трассировки можно загрузить на общедоступную страницу веб-сайта Emerge Tools для создания Flame Graph. Вы также можете сравнить две трассировки, чтобы сравнить два разных запуска вашего приложения и проверить, например, насколько функция улучшилась или ухудшилась.
Еще одним преимуществом ETTrace, по словам Мартина, является то, что его можно интегрировать в конвейер CI с помощью Emerge Tools Performance Analysis, который предоставляет функции тестирования производительности. В качестве примера он упоминает работу, проделанную Doordash по сокращению времени запуска приложения для iOS на 60 %, выявлению и устранению узких мест, связанных с тестированием на соответствие протоколу Swift.
График Flame — это способ визуализации иерархических данных, который позволяет легко идентифицировать наиболее часто используемые пути кода. Каждый узел, то есть функция, представлен рамкой, ширина которой представляет собой относительную меру используемого этой функцией процессорного времени.
ETTrace можно скачать с GitHub.
Программируйте, развертывайте и масштабируйте Java по своему усмотрению. Microsoft Azure поддерживает вашу рабочую нагрузку, предоставляя широкий выбор, независимо от того, работаете ли вы над приложением Java, сервером приложений или платформой. Узнать больше.
Написание статей для InfoQ открыло множество дверей и расширило возможности карьерного роста. для меня. Мне удалось тесно пообщаться с экспертами и лидерами мнений, чтобы узнать больше о темах, которые я освещал. И я также могу распространять свои знания среди более широкого технологического сообщества и понимать, как технологии используются в реальном мире.
Я открыл для себя программу для участников InfoQ в начале этого года и с тех пор наслаждаюсь ею! Помимо предоставления мне платформы для обмена знаниями с мировым сообществом разработчиков программного обеспечения, система коллегиального обзора InfoQ значительно улучшила мое письмо. . Если вы ищете место, где можно поделиться своим опытом в области программного обеспечения, начните вносить свой вклад в InfoQ.
Я начал писать новости для очереди InfoQ .NET, чтобы быть в курсе технологий, но я получил от этого гораздо больше. Я встретил знающих людей, получил глобальную известность и улучшил свои навыки письма.