Рубрики
Без рубрики

Является ли моя угловая производительность нормальной?

Одним из самых распространенных вещей, которые я делаю, когда сталкиваетесь с новым угловым приложением или команды, – это посмотреть на … Теги с угловым, производительностью, JavaScript, WebDev.

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

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

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

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

Что нормально?

Вот несколько примеров угловых приложений (от успешных компаний), которые вы можете видеть в дикой природе и их навязчивом размере пучка, как сообщает Devtools:

  • Delta.com: 4,2 МБ
  • Forbes.com: 5.7mb.
  • Сообщения Android: 1.1MB
  • Грубхуб: 3.4 МБ.

Для сравнения вот некоторые не угловые размеры пакета JavaScript:

  • Microsoft.com составляет 1,4 МБ
  • Amazon.com составляет 7,5 МБ
  • theverge.com составляет 9,6 МБ
  • Страницы Википедии 223 Kb.
  • reddit.com 4,9 МБ
  • netflix.com – 4,2 МБ (для вошедших в систему пользователей)
  • Twitter.com 3,5 МБ

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

Глядя на то, насколько велики лучшие веб-недвижимости сегодня … Да, Ваше приложение, вероятно, нормальное Отказ Но это то, кем ты хочешь быть?

Нормальный недостаточно хорош

Стоит отметить, что момент, когда вы начинаете проталкивать несколько сотен килобайт, ваши пользователи (особенно на мобильном) должны начать ждать вас. Ожидание убивает пользовательский опыт, он убивает взаимодействие, он убивает продажи.

Если вы использовали почти каждую функцию угловой на вашей домашней странице, включая анимацию браузера, формы, маршрутизатор, HTTP и некоторые угловые компоненты материала (кстати, не загружайте все на домашнюю страницу), но написал никакого кода Сам, все ваше приложение будет меньше 400 КБ, что означает, что в любое время ваше приложение превышает 800 или 900 КБ, это потому, что вы просите своих пользователей запускать множество Ваш код для генерации ваших страниц.

Если вы посмотрите на отчет о покрытии, доступном в нижней панели, ситуация почти мрачная. Большую часть времени Меньше Чем 50% JavaScript отправляется с страницей, выполняется на начальной нагрузке. Куча этого кода предназначена для обработки ошибок, а некоторые из них могут быть неисправностью угловых углов, но многие неиспользуемые JavaScript исходят от нас просто не осознавая проблему.

FYI Этот блог сегодня около 482 КБ, а иногда и пользу от преренствия.

Основные виновники

Как это произошло? Как мы отправляемся из пустого приложения со всеми функциями платформы на 400 КБ в реальное приложение в нескольких мегабайтах? Наиболее распространенным делом является маркетинговые и рекламные инструменты. Все, от вашего пакета аналитики, к вашему пользователю отслеживание, к инструментам вашей службы поддержки может оказаться затратываться на ваш USRES и наносит вред пользователю, когда они были построены, чтобы попытаться помочь.

Вот некоторые из лучших преступников, которые я видел загрязняющий размер и производительность пакета:

  • SiteCatalyst
  • FbEvents.
  • портить
  • LivePerson

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

Что я делаю?

Решите, когда, где и как вы хотите установить баланс между пользовательским опытом, производительностью нагрузки, взаимодействием клиентов и интеллектом.

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

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

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

Оригинал: “https://dev.to/stephenfluin/is-my-angular-performance-normal-35g5”