Перейти к содержимому

Xamarin profiler что это

  • автор:

Xamarin: что это такое, кому стоит использовать и ответы на другие важные вопросы о фреймворке

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

Кто выигрывает с Xamarin?

Бизнес-логика приложения редко меняется при смене платформы. Ваш любимый интернет-банкинг проводит платежи и сообщает баланс вне зависимости от того, работаете вы на смартфоне или ноутбуке. Подобные приложения со сложной бизнес-логикой и стандартным интерфейсом — прерогатива Xamarin.

Алгоритмы, разработанные на C# для одной платформы, программисты используют и для всех остальных платформ. Например, при работе на Xamarin.Android и Xamarin.iOS, до 75% кода можно переиспользовать: приложение работает одинаково и на iPhone, и на Android-смартфоне.

Если в приложении главное — функциональность, а из дизайна всего пара кнопок и красивый график — вам повезло, Xamarin подходит. На проектах со сложным интерфейсом стоимость доработки иногда сопоставима с разработкой двух-трёх нативных решений. Но бизнес-логика равно не меняется и с каждой новой версией приложения разрабатывать ещё будет проще — все нюансы требований заказчика уже известны. В сухом остатке затраты на доработку зависят от команды и сложности дизайна.

Какие плюсы?

Экономия ресурсов, переиспользование кода и простота добавления версий для новых платформ. Код на C# доступен всей команде и при достаточной квалификации может быть использован на любой другой платформе: как мобильной, так и десктопной.

Ваша команда подходит?

Для программистов, уже работающих с несколькими платформами отдельно, переход на кроссплатформенные решения покажется рутиной. Разобраться в Xamarin легко, а вот изучить документацию, гайдлайны, SDK и API каждой платформы с нуля — гораздо сложнее.

Для тех же Xamarin.Android и Xamarin.iOS требуется знание iOS Storyboards и синтаксис Android XML. Конечно, обучать сотрудников всегда полезно, но готовы ли вы делать эти вложения прямо сейчас? В любом случае, лучше иметь на проекте пару iOS-Android разработчиков, которые ускорят процесс обучения коллег. В команде одни десктоп-специалисты, а приложение должно работать и на смартфонах? Без дополнительной помощи мобильных разработчиков вы вряд ли почувствуете экономию от Xamarin.

Сколько это стоит?

Ещё в начале 2016 года разработчики тратили на лицензию Xamarin до $999 в год. Но после поглощения компанией Microsoft большая часть продуктов Xamarin стала доступна по лицензии Visual Studio 2013 или Visual Studio 2015. Скачивайте всё необходимое с официального сайта Xamarin или прямо в Visual Studio 2015 (Update 2) и начинайте работу.

Доплачивать надо, например, за Xamarin Test Cloud. Но будем честны: без этого сервиса может обойтись подавляющее большинство проектов.

Стоит учитывать стоимость оборудования. Вам понадобятся устройства с macOS для разработки на iOS SDK и Windows для Windows Phone SDK, а Android SDK работает и там, и там.

О чем стоит беспокоиться?

Xamarin сравнительно молодой — на специфические вопросы не всегда удаётся найти ответы в документации или на форуме. Но можно спросить у разработчиков на конкретных платформах. В Xamarin используются нативные SDK, даже название методов и классов в Xamarin наследуется, так что проблем с поиском возникнуть не должно.

Раздел для разработчиков на сайте Xamarin содержит детальную документацию, API и примеры всех методов и процедур — этого достаточно, чтобы начать разработку. Для всего остального есть Stackoverflow с ответами на любые вопросы по Xamarin, iOS, Android.

Первые Xamarin-специалисты жаловались на проблемы при работе со сторонними библиотеками. Сегодня SQLite.NET, loC фреймворки Autofac, MVVC фреймворки и другие популярные библиотеки поддерживают кроссплатформенную разработку. Если вы не собираетесь использовать на проекте исключительно редкие инструменты, то волноваться не о чем.

Xamarin.Forms или Xamarin.IOS + Xamarin.Android?

Зависит от возможностей и желаний. Xamarin.Forms — это инструмент для разработки единого интерфейса для всех платформ. Дизайн описывается в XML-файле, используя синтаксис XAML. Это оценят .NET-разработчики, которые обычно уверенно работают с XAML.

Проблема в том, что программисту будет доступен всего лишь небольшой набор стандартных элементов управления, внешняя оболочка, связанная с нативными кнопками, чекбоксами и прочим. Теоритически, в Xamarin.Forms используется до 100% общего кода, но только для приложений с совсем уж простым интерфейсом, вроде «Hello world». Если вам захочется что-то, чего нет в наборе, то придётся перерабатывать и сами элементы на каждой платформе по-отдельности. Выбирайте Xamarin.Forms для проектов, где вы готовы сэкономить на гибкости настройки интерфейса.

Чаще «схалявить» не получается и нужно использовать Xamarin.iOS и Xamarin.Android. Так у вас будет прямой доступ к API платформ и полный набор элементов управления, а каждая платформа будет представлена отдельным решением.

Так подойдет мне Xamarin или нет?

Ответьте на три вопроса и станет ясно, подходит ли вам Xamarin:

  • Интерфейс приложения без сложной логики взаимодействия и нестандартных элементов управления?
  • У вас в команде есть мобильные разработчики?
  • Вы планируете другие кроссплатформенные проекты (пусть даже не на Xamarin) в ближайшее время?

Если вы ответили «да» на все вопросы, тогда Xamarin — хорошее вложение для вашей команды и проекта в долгосрочной перспективе.

Автор: Мария Куликовская, веб-разработчик, Itransition

Мария работает в Itransition более трех лет, отвечая за планирование проектов, выбор технологий под бизнес-требования заказчика, управление развертыванием и пост-проектной поддержкой и т.п. Участвовала в разработке самых разных систем, как мобильных, так и десктопных. Сфера особого интереса — базы данных.

Преимущества и особенности при работе с технологией Xamarin

Несомненные преимущества Xamarin для создания мобильных приложений делают ее номером один среди большого выбора стеков технологий. Есть и некоторые особенности, но для профессионалов это скорее плюс, чем минус, так как эти особенности отрезают ленивых и некомпетентных разработчиков.

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

Существует несколько веских причин, по которым Xamarin используется многими компаниями, включая Trello, Slack и GitHub.

+ Единый стек технологий для разработки на всех платформах

Xamarin использует язык C# и .NET Framework, чтобы создавать приложения для любой мобильной платформы. Таким образом, вы можете повторно использовать до 30% исходного кода, ускоряя процесс разработки. Xamarin также не требует переключения между средами разработки: все приложения Xamarin могут создаваться средствами Visual Studio. Кроссплатформенные инструменты разработки предоставляются как встроенная часть IDE без каких-либо дополнительных затрат.

+ Производительность близка к нативной

Кроссплатформенное приложение, созданное с помощью Xamarin, можно классифицировать как нативное, в отличие от традиционных гибридных решений, базирующиеся на веб-технологиях. Показатели производительности сопоставимы с показателями Java под Android и Objective-C или Swift для разработки приложений под iOS. Более того, показатели производительности Xamarin постоянно улучшаются и совершенствуются, чтобы полностью соответствовать стандартам отечественной разработки. Платформа Xamarin предлагает комплексное решение вопросов тестирования и отслеживания производительности приложения: Xamarin Test Cloud в сочетании с инструментом Xamarin Test Recorder позволяет запускать автоматические тесты пользовательского интерфейса и находить проблемы производительности еще до выпуска приложения. Однако эта услуга предоставляется за дополнительную плату.

+ Собственный пользовательский опыт

Используя платформо-зависимые элементы UI, Xamarin позволяет создавать интерфейс. Для большего удобства разработки пользовательского интерфейса приложения рекомендуется использовать Xamarin.iOS и Xamarin.Android отдельно. Это обеспечивает лучший результат.

+ Полная поддержка оборудования

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

+ Open Source-технологии с корпоративной поддержкой

После того как в феврале 2016 года компанию приобрела Microsoft, лицензионная политика Xamarin подверглась радикальным изменениям. Xamarin SDK, включая библиотеки и инструменты командной строки, стал открытым и доступным для всех под лицензией MIT, как часть Visual Studio. Путём устранения основной преграды в виде стоимости лицензии, Microsoft обеспечила наилучшие условия для дальнейшего развития платформы. Кроме того, во главе с Microsoft и при поддержке Unity, JetBrains, Red Hat, .NET Foundation, Xamarin стал надёжным и мощным стеком технологий для разработки мобильных приложений.

+ Простая поддержка

Благодаря кроссплатформенности, Xamarin упрощает поддержку и обновление программного обеспечения. Вы можете просто внести изменения в один исходный файл, и они будут применяться к приложениям как iOS, так и Android. Но это имеет отношение только к приложениям, использующим общую бизнес-логику, а также общий код для приложений Xamarin.iOS и Xamarin.Android. Таким образом, это поможет вам сэкономить время и деньги, при этом сохраняя ваши приложения в рабочем состоянии.

+ Полная экосистема развития

Xamarin поставляется в одном наборе с полным пакетом инструментов разработки: собственная система IDE (Visual Studio), Xamarin SDK, тестирование (Xamarin Test Cloud), распространение и аналитика (Hockeyapp and Xamarin.Insights). Таким образом, не нужно вкладываться в дополнительные инструменты или же интегрировать другие приложения для создания, тестирования и развертывания ваших приложений Xamarin.

Особенности Xamarin

Однако все же существует ряд особенностей, о которых следует знать при разработке на Xamarin.

— Обновления поддержки платформ не день в день

Это целиком и полностью зависит от команды разработчиков Xamarin. Невозможно, чтобы «сторонние» инструменты обеспечивали немедленную поддержку выхода последних обновлений iOS и Android: требуется некоторое время, чтобы внедрить новые изменения, новые плагины и т. д. Хотя Xamarin утверждает, что обеспечивает поддержку в тот же день, но все же могут быть задержки в один-два дня.

— Доступны не все существующие библиотеки

Нативная разработка широко использует технологии с открытым исходным кодом. С Xamarin придется пользоваться компонентами, предоставляемыми платформой и некоторыми .NET ресурсами, которые используются разработчиками и потребителями. Выбор, конечно, не так велик, как при разработке мобильных приложений под iOS и Android, однако, компоненты Xamarin предоставляют тысячи разных элементов интерфейса: диаграммы и графики, темы и другие удобные и полезные функции, которые можно добавить в любое приложение всего в несколько кликов. Эта платформа включает в себя функции встроенной обработки платежей (такую, как Stripe), поддержку маячков и носимых устройств, служб Push уведомлений, решений для облачных хранилищ, возможностей мультимедиа, стриминга и многое другое.

— Развивающаяся экосистема

Хоть платформа Xamarin растет и развивается, а также поддерживается со стороны Microsoft, но очевидно, что сообщество специалистов, разбирающихся в специфике Xamarin, значительно меньше, чем у iOS или Android, поэтому найти опытного разработчика может оказаться непросто. Судя по информации из разных источников, сообщество Xamarin составляет 10% от общего количества мобильных разработчиков. Несмотря на то что число инженеров Xamarin не сравнится с числом профессионалов iOS или Android, создатели платформы оказывают поддержку своим специалистам. Например, существует специальное образовательное учреждение Xamarin University, которое предоставляет разнообразные ресурсы и возможности для практической подготовки специалистов в этой отрасли. Благодаря такой поддержке, кривая обучаемости минимальна для опытных программистов C#.

— Требование к базовым знаниям языка программирования

При использовании Xamarin.iOS и Xamarin.Android для создания мобильных приложений с нативным интерфейсом приходится писать платформо-зависимый слой кода. Следовательно, требуются, по крайней мере, базовые знания нативных технологий (Java/Kotlin для Android и Objective-C/Swift для iOS). Однако они не применяются для Xamarin.Forms.

— Xamarin не подходит для игр с высокопроизводительной графикой

Главное преимущество Xamarin — это возможность использовать код на разных платформах. Тем не менее речь идет только о логике, код UI будет в основном уникален для платформы. Это позволит создавать игры на Xamarin, но богатый пользовательский интерфейс или же сложные анимации с небольшим количеством общего кода делают Xamarin непригодным.

— Требуется дополнительная оптимизация размера приложения

В зависимости от типа и сложности, приложения Xamarin обычно больше, чем нативные, иногда даже в два раза. На Android простое «Hello, World» может занимать до 16 MB, причем большая часть его используется связанными библиотеками, окружением Mono и базовыми библиотеками (Base Class Library, BCL). Таким образом, приложение обычно нуждается в дополнительной оптимизации, чтобы размер его файла был не слишком большим.

Особенности разработки приложений на Xamarin

— Качество интеграции зависит от разработчика

Есть вероятность того, что могут возникнуть некоторые проблемы с интеграцией сторонних ресурсов с Xamarin. Хотя большинство инструментов и библиотек предлагают полную поддержку для нативных технологий, совместимость с Xamarin не может быть гарантирована компанией-производителем. Хотя у Xamarin есть собственный арсенал компонентов, всегда есть вероятность, что вам может потребоваться конкретная функция или интеграция в вашем приложении, которая не предоставляется платформой.

5 причин выбрать Xamarin для кроссплатформенной разработки

Xamarin – один из наиболее популярных инструментов кроссплатформенной разработки приложений для iOS, Android, tvOS, watchOS, macOS и Microsoft (UWP-приложения) с использованием С# и .NET. В 2019-2020 годах он стабильно занимал место среди пяти самых используемых разработчиками фреймворков.

На него в своей разработке полагались такие известные компании как Bosch, Siemens, Slack, Pinterest, UPS, Outback Steakhouse, Aggreko и другие. В этой статье мы поделимся нашим опытом разработки приложения с помощью Xamarin, расскажем, почему стоит его использовать и чем в нашем случае он был полезен.

5 причин выбрать Xamarin для кроссплатформенной разработки

Рис. 1 Кроссплатформенные мобильные фреймворки, используемые разработчиками программного обеспечения во всем мире в 2019 и 2020 годах (Источник: Statista)

Кейс: старое приложение на новой платформе

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

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

Основными требованиями для разработки нового приложения стали:

  • поддержка iOS и Windows с полным воспроизведением интерфейса старого приложения;
  • сжатые сроки разработки;
  • простота поддержки и масштабируемость.

Хорошим решением поставленных задач стал Xamarin и далее я расскажу, почему.

Причина 1: Нативная мультиплатформенность

Xamarin предоставляет полный доступ к нативным API и инструментам, используемым на платформах Android, iOS и Windows. Следовательно, он может обеспечить практически нативный дизайн и производительность для каждого приложения. Этот факт позволяет отдать предпочтение решениям на основе Xamarin, а не его гибридным конкурентам.

Причина 2. Сжатые сроки разработки

Задача миграции приложения всегда идет рука об руку с требованием о сжатых сроках, и Xamarin полностью отвечает этому требованию. Основные его преимущества:

  • использование одной кодовой базы на обе операционные системы (iOS и Windows) сокращает срок разработки;
  • использование C# и .NET, которые просты в изучении и использовании, увеличивает скорость разработки;
  • для начала работы достаточно установки Visual Studio.

Согласно опросам, четверть разработчиков пользуется именно этим IDE для отладки и работы с кодом.

Xamarin – мощный и удобный инструмент разработки. Создать в нем прототип приложения можно буквально за один день, а тестирование производить без реальных устройств, в Visual Studio, используя симуляцию. Это значительно экономит время.

Причина 3. Простота поддержки и быстрое обучение инженерной команды

Руководств по использования Xamarin написано уже немало. В них приводятся лучшие практики, что позволяет быстро обучить новых инженеров и легко ввести их в проект. Также есть Xamarin University – специализированный портал удаленного обучения для тех, кто только знакомится с пакетом. Он создан для инженеров со знанием C#, а также для всех, кто имеет не слишком большой опыт программирования. Ресурс предоставляет все необходимые знания инженерам, использующим продукты на основе Xamarin.

Помимо этого, Xamarin упрощает обслуживание приложений: достаточно внести изменения или сделать обновления в исходном файле, и они будут применены к приложениям iOS, Android и Windows автоматически. Однако, следует учитывать, что это работает только для приложений, использующих Xamarin.Forms.

Причина 4. Возможность выбора приоритетов

В Xamarin есть два подхода к разработке – Forms и Native.

5 причин выбрать Xamarin для кроссплатформенной разработки

Рис. 2 Достоинства и недостатки подходов к разработке в Xamarin

По рисунку 2 можно определить важные критерии для разработки приложения в каждом конкретном случае.

Для нашего приложения производительность не играет важной роли, поэтому, руководствуясь остальными критериями, мы выбрали подход Xamarin.Forms.

Итак, Xamarin.Forms лучше всего выбрать для:

  • MVP (Minimum Viable Product) приложений
  • Простых приложений с небольшим функционалом

Xamarin.Native будет полезен при разработке:

  • Высоконагруженных систем
  • Приложений, которые интегрированы с другими сервисами

Приложений, в которых пользовательский интерфейс более важен, чем переиспользование кода.

Причина 5. Простота внедрения кроссплатформенности

Кроссплатформенность действительно легко и удобно достигается средствами Xamarin. Вы пишете общий код для iOS, Android и Windows, а Xamarin сам разбирается, как связать ваш код с нативным для каждой платформы API. Кроме того, есть возможность писать не только общий, но и платформозависимый код, и Xamarin тоже поймет, что и где вызывать. Одним из главных механизмов достижения кроссплатформенности является наличие «умных» сервисов, способных осуществлять кросс-зависимые вызовы, то есть обращаться к той или иной реализации определенного функционала в зависимости от платформы. Платформозависимый код можно писать не только на C#, но и добавлять его в xml-разметку. В нашем случае iOS-версия была урезанной и часть графического интерфейса нужно было скрыть, размеры некоторых элементов также зависели от платформы.

Для большей наглядности приведем небольшой пример. В нашем проекте мы использовали библиотеку классов, предоставленную заказчиком, которая была написана на C++. Назовем ее MedicalLib. MedicalLib собиралась в две разные сборки в зависимости от платформы (статическая MedicalLib.a для iOS и динамическая MedicalLib.dll для Windows). Кроме того, она имела различные wrapper-классы (классы-переходники) для вызова неуправляемого кода. Основной проект (общая кодовая база) содержал описание API MedicalLib (интерфейс), а платформозависимые проекты для iOS и Windows – конкретные реализации этого интерфейса и ссылки на сборки MedicalLib.a и MedicalLib.dll соответственно. Из основного кода мы вызывали те или иные функции абстракции, не задумываясь, как именно они реализованы. Механизмы Xamarin.Forms, понимая, на какой платформе запущено приложение, вызывали необходимую реализацию и подгружали конкретную сборку.

Примерно так это можно изобразить схематично:

5 причин выбрать Xamarin для кроссплатформенной разработки

Рис. 3 Вызов платформозависимых функций в Xamarin.Forms

Недостатки Xamarin

Необходимо также кратко упомянуть и недостатки Xamarin, которые мы принимали во внимание, делая выбор в пользу этого инструмента.

Во-первых, больший размер написанного приложения влияет на скорость загрузки и количество дискового пространства, которое оно занимает на устройстве. В нашем случае это было не критично, так как приложение было сделано для внутреннего использования и не было предназначено для широкого использования.

Во-вторых, небольшие задержки обновлений для последних версий Android и iOS. Для нашего приложения были прописаны поддерживаемые версии операционных систем, а конечные пользователи не могли скачивать и устанавливать обновления без разрешения администратора организации, что давало нам время на проверку и исправление дефектов в новой версии ОС.

В-третьих, сообщество разработчиков Xamarin является довольно молодым и несмотря на наличие Xamarin University, найти разработчика с реальным опытом Xamarin может быть непросто.

Наконец, поскольку код пользовательского интерфейса является платформозависимым, Xamarin будет нецелесообразно использовать для создания комплексной анимации, разработки богатых кастомных пользовательских интерфейсов и при создании игр.

В заключение

Большинство лиц, принимающих решения, выбирают для разработки кроссплатформенных приложений платформу Xamarin, так как она сокращает время вывода на рынок продукта и затраты на разработку за счет переиспользования кода и использования одного технологического стека. Опыт нашей команды показывает, что Xamarin дает возможность быстро получить MVP при минимальных инженерных издержках и проверить приложение на жизнеспособность.

В случае приложений со сложным пользовательским интерфейсом и сильной зависимостью от системы объем общего кода резко уменьшается. Таким образом, кроссплатформенная разработка Xamarin теряет свои основные преимущества и может быть равна по времени и стоимости нативным решениям. Однако за счет использования мощного IDE все равно оставляет за собой ряд преимуществ.

Xamarin profiler что это

xamarin profiler logo

13 Декабрь

Встречайте, Xamarin Profiler

Александр Алексеев

Xamarin Profiler, Перевод Android, iOS, Прочее Leave a Comment

Xamarin Profiler

Windows-профайлер

Запуск профайлера

Чтобы начать сеанс профилирования, запустите приложение на устройстве или эмуляторе с подключенным Xamarin Profiler. В Visual Studio откройте свой Xamarin-проект и выберите Analyze > Xamarin Profiler, чтобы начать сеанс. В Xamarin Studio и Visual Studio для Mac выберите Run > Start Profiling. Сеансы Xamarin Profiler могут быть также сохранены в формате mlpd (Mono Log Profiler Data). Дважды кликнув по файлу mlpd можно открыть его в Xamarin Profiler. Эти файлы можно перемещать между Windows и Mac.

Инструменты

При запуске Xamarin Profiler появится предложение выбрать один инструмент либо их группу для сбора данных о приложении. Каждый инструмент собирает определенную информацию о приложении, с тем чтобы помочь диагностировать различные типы проблем. Xamarin Profiler поставляется с тремя инструментами: Allocations, Time Profiler и Cycles. Давайте разберёмся в каждом из них, чтобы узнать, как они помогут нам разрабатывать более совершенные приложения.

Allocations

Инструмент Allocations показывает, сколько памяти используется приложением и на что она им расходуется. На вкладке allocations указывается список всех объектов, созданных за время «жизни» приложения, а также на панели детализации справа показываются дополнительные фильтры, статистические данные и диаграммы с обобщающей сводкой использования памяти:

Xamarin Profiler

Mac-профайлер

Мы можем дополнительно отфильтровать список Allocations, с тем чтобы найти полезные для нас объекты. Например, мы можем отыскать объекты из нашего кода, выполнив поиск в пространстве имен. Xamarin Profiler отмечает наши объекты синим цветом:

Xamarin Profiler

Mac-профайлер

Другой способ фильтрации данных Allocation состоит в том, чтобы ограничивать информацию конкретного сегмента с помощью инструмента «указателя». Инструмент «указатель» позволяет выделить ту часть данных, на которой нужно сосредоточить внимание. Благодаря этому можно ограничивать список Allocations, выделяя объекты на установленный промежуток времени:

Xamarin Profiler

Mac-профайлер

Инструмент Allocations также показывает дерево вызовов, которое отображает использование памяти в виде данных, сгруппированных по вызову метода. У нас есть возможность посмотреть дерево вызовов, разделённое по темам, а также в инвертированном порядке, где показывается использование памяти сперва на самом детализированном уровне, а затем её путь вверх по стеку вызовов:

Xamarin Profiler

Mac-профайлер

Снимки состояния (Snapshots)

Приятной особенностью инструментов Allocations являются «снимки состояния» — возможность выводить список всех объектов в приложении в определенный момент времени. Мы можем сделать снимок состояния в любой момент во время сеанса профилирования, нажав на значок камеры в средствах управления Profiler в левом верхнем углу. Красные линии в консоли обозначают снимки состояния в сеансе профилирования:

Xamarin Profiler

Windows-профайлер

Двойной клик по снимку состояния покажет объекты, которые в настоящие время находятся в памяти. Если выбрать Only New Objects (оставить только новые объекты) в параметрах отображения, тогда можно ограничить показываемые объекты дельтой между предыдущим снимком состояния и текущим. Благодаря этому мы сможем получить представление о том, что было создано между двумя промежутками во времени:

Xamarin Profiler

Windows-профайлер

Time Profiler

Time Profiler использует выборку, с тем чтобы определить, где наше приложение тратит большую часть времени. Выборка представляет собой легкий метод профилирование производительности путём опросов приложения через регулярные промежутки времени для определения того, какой код выполняется в тот момент, а затем формирования гипотезы о том, сколько времени различным частям программы требуется на его выполнение. В Xamarin Profiler дерево вызовов в первой вкладке представляет собой примерно то же самое, что и в Allocations, но вместо того, чтобы отображать использование памяти по методу, оно показывает данные о том, сколько времени было потрачено в каждом методе. Во второй вкладке список выборки демонстрирует нам разбивку её результатов:

Xamarin Profiler

Mac-профайлер

Cycles

Инструмент Cycles даёт письменное и визуальное представление о ссылках между объектами, что делает его особенно полезным при обнаружении нативных циклов обращения или циклических ссылок между объектами, которые пересекают границу между нативным миром и управляемым. Эти типы ссылок имеют важное значение, поскольку они предотвращают предусмотренное выполнение объектов от того, чтобы быть перехваченным сборщиком мусора. Xamarin Profiler предоставляет список циклов на вкладке Roots & Cycles. Нас в первую очередь интересуют циклы запланированного выполнения объектов в нашем коде. Если цикл обнаружен, Xamarin Profiler отобразит корневой объект в списке слева и отрисует в правой стороне график со всеми объектами, участвующими в цикле. Корень цикла изображен фиолетовым цветом с зависимостями между объектами, представленными стрелками:

Xamarin Profiler

Windows-профайлер

Для получения дополнительной информации о Cycles обратитесь к подготовленному нами простому примеру приложения для нативных циклов обращения, а также к руководству Джеймса Кланси (James Clancey) «Улучшение кроссплатформенной производительности с помощью Xamarin», которое содержит подробную информацию о том, как формируются циклы и о том, как их следует исправлять.

Информационные ресурсы

  • Введение в Xamarin Profiler: документация с нашего портала для разработчиков.
  • Архитектура iOS: гайд-движок о том, как работает Xamarin.iOS.
  • Архитектура Android: гайд-движок о том, как работает Xamarin. Android.
  • Руководство пользователя по Xcode Instruments: введение в нативное профилирование iOS с помощью инструментов.
  • Обзор Android Monitor: введение в нативное Android-профилирование посредством Android Monitor.
  • Сборник мусора в Xamarin.iOS: статья в блоге с отличнейшим объяснением нативных циклов обращения в iOS.

Xamarin Bug Tracker: прямая ссылка, куда следует отправлять сообщения о проблемах с Profiler.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *