Помощь окружающей среде за счет экономии двух столетий вычислительного времени

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

Сколько времени экономится?

Вот сколько удалось сэкономить на сегодняшний день (данные от 16 августа 2022 года). Просто сумасшествие!

Вот необработанные цифры:

  • Последние 7 дней: 5 лет 4 месяца 2 дня 2 часа 32 минуты 46 секунд
  • Последние 30 дней: 23 года 8 месяцев 25 дней 8 часов 57 минут 19 секунд
  • С начала существования Nx Cloud: 200 лет 10 месяцев 13 дней 19 часов 37 минут 57 секунд

Скоро у нас будет страница на nx.app, где вы сможете посмотреть живые цифры, так как они продолжают молниеносно расти!!! (неудивительно, что Nx скоро достигнет 2,5 миллионов загрузок / неделю)

Влияние на окружающую среду

Подсчет выбросов CO2 может быть непростым делом. Это действительно зависит от того, какие машины используются для выполнения вычислений, сэкономленных Nx Cloud. Мы попробовали это сделать, используя https://green-algorithms.org/.

Вот некоторые впечатляющие цифры экономии 🤯.

Экономия за последние 7 дней соответствует:

Посмотреть все детали

Экономия за последние 30 дней соответствует:

Посмотреть все детали

С начала работы Nx Cloud:

Посмотреть все подробности

Помогите мне! Краткая информация о том, как Nx экономит вычисления

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

Затрагиваемые команды

Пример: Запускать тесты только для измененных проектов в данном PR.

nx affected:test
Войти в полноэкранный режим Выйти из полноэкранного режима

Команды Nx affected позволяют запускать команды только для проектов, которые изменились по отношению к базовой линии. Обычно это применяется в PR, обрабатываемых вашей системой CI. Nx анализирует коммиты Git и определяет все проекты, которые были изменены относительно базовой ветки (обычно main или master). Затем он проверяет, чтобы заданная команда выполнялась только для этих проектов, а также для всех проектов, зависящих от них, поскольку они тоже могут быть затронуты изменениями.

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

Локальное кэширование вычислений

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

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

Распределенное удаленное кэширование (с Nx Cloud)

По умолчанию кэш вычислений Nx хранится локально (обычно в папке node_modules/.cache/nx). Реальные преимущества можно получить, если поделиться им с другими, например, с коллегами или CI-агентами.

Nx Cloud позволяет распределить кэш вычислений Nx по машинам.

Подключение существующего рабочего пространства Nx к Nx Cloud может быть выполнено следующим образом

nx connect-to-nx-cloud
Войти в полноэкранный режим Выйти из полноэкранного режима

Подробнее в документации. Nx Cloud поставляется с 500 часами сэкономленного вычислительного времени в месяц, что достаточно для большинства рабочих пространств. Если вы превысите его, вы можете купить больше, или, в худшем случае, кэширование просто прекратится до следующего месяца.

Бонус! Lerna тоже может это делать!!!

Nrwl, компания, стоящая за Nx, недавно взяла на себя управление Lerna. Тем временем только что вышла версия Lerna 5.4, в которой реализована хорошая интеграция с Nx, позволяющая существующим пользователям Lerna продолжать использовать те же команды, но при этом пользоваться улучшенным планированием задач и возможностями кэширования, которые предоставляет Nx.

Как включить эту функцию? Читайте подробнее в документации Lerna


Узнать больше

  • 🧠 Nx Docs
  • 👩💻 Nx GitHub
  • 💬 Nrwl Community Slack
  • 📹 Канал Nrwl Youtube
  • 🥚 Бесплатный курс Egghead
  • 🧐 Нужна помощь с Angular, React или Nx? Поговорите с нами 😃

Также, если вам понравилось это, нажмите ❤️ и не забудьте следить за Юри и Nx в Twitter, чтобы узнать больше!

#nx

Оцените статью
devanswers.ru
Добавить комментарий