Как обновить версию node js
Перейти к содержимому

Как обновить версию node js

  • автор:

Как выбрать подходящую версию Node.js?

Node.js — среда выполнения JavaScript, основанная на движке Chrome V8. Она используется в различных целях, от проектов на стороне сервера до скриптов инструментов разработки, поэтому стоит базово с ней ознакомиться.

Поговорим о различиях между версиями LTS и Current в Node.js и о том, как выбрать подходящий вариант.

Что такое версия Node.js?

На официальном сайте указано, что Node.js доступен в виде серий LTS и Current, которые соответствуют разным последним версиям.

Именование номеров версий Node.js соответствует правилу семантического версионирования, которое определяет, как представляются версии, как они инструментализируются и сравниваются, а также что означают.

Номер версии представляется в формате MAJOR.MINOR.PATCH и зависит от следующих значений.

  1. MAJOR-версия указывает на количество внесенных несовместимых изменений в API.
  2. MINOR-версия означает добавление обратно-совместимой функциональности.
  3. PATCH-версия указывает на добавление обратно-совместимых исправлений ошибок.

Дополнительные метки для метаданных предварительной версии и сборки доступны в виде расширений формата MAJOR.MINOR.PATCH.

Версия LTS

Полное название версии LTS — Long Time Support, что означает “длительный срок поддержки”.

Суть версии LTS заключается в обеспечении стабильности и безопасности продукта. Главный номер версии каждой LTS-версии является четным числом. В процессе разработки необходимо сокращать количество неизвестных проблем.

LTS-версия имеет трехэтапный жизненный цикл.

  • Активная фаза. Каждая версия с четным номером, входящая в LTS из Current, активно поддерживается и обновляется в течение 18 месяцев.
  • Период обслуживания. После завершения 18-месячной активной фазы наступает годовой период обслуживания, во время которого вносятся лишь исправления ошибок и патчи для исправления уязвимостей.
  • Конец жизненного цикла (End of Life, EOL). По истечении периода обслуживания версия переходит в фазу EOL и больше не поддерживается. Другими словами, каждая версия LTS будет поддерживаться максимум 2,5 года, после чего ее поддержка прекратится.

Версия графика жизненного цикла (2022–2025):

Текущая версия (Current version)

Текущая версия означает последний релиз, который предназначен для разработки функций и совершенствования API, с более коротким сроком службы и более частыми обновлениями кода.

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

В целом, в рамках Current-релиза major-версия выпускается каждые 6 месяцев (т. е. большую часть времени):

  • выпуск новой четной версии каждый апрель;
  • выпуск новой нечетной версии каждый октябрь.

Подробную информацию об обновлениях версий можно найти на странице с графиком релизов Node.js.

Как выбрать подходящую версию?

LTS

Если речь идет об обеспечении стабильности в производственной среде, рекомендуется использовать версию LTS.

Current (текущая)

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

Заключение

В этой статье мы рассказали о различиях между версиями LTS и Current в Node.js и о том, как выбрать подходящий вариант.

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

  • 5 библиотек ведения логов для Node.js
  • Как создать простой API с помощью Express и MongoDB
  • Создаем Telegram-бота с помощью Node.js за 3 минуты

Читайте нас в Telegram, VK и Дзен

Нужно ли обновлять версию NodeJS в надежде на увеличение производительности?

Node.js — технология для запуска JavaScript кода вне браузера. Раньше код мог запускаться только в части фронтенда, но теперь JavaScript может исполняться на сервере, это позволяет писать серверный код для динамических веб-страниц и веб-приложений, а также для программ командной строки на этом языке. Релизы Node.js появляются часто, новые версии выпускаются как правило в апреле и октябре. Так, самой актуальной версией сейчас является Node.js 18.3.0. Однако, изменение версии платформы влечет за собой обновление большей части пакетов, которые необходимы для корректной работы приложения. Настройка зависимостей занимает много времени, а трудозатраты на рефакторинг кода, в случае изменений синтаксиса в обновленных библиотеках, могут быть очень большими. Поэтому до сих пор используются и довольно популярны версии 12, 10 и даже 8. Насколько критично использовать версию платформы Node.js, которая перестала поддерживаться несколько лет назад, и такие ли большие изменения претерпевала технология?

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

Отличия производительности в версиях

Последняя анонсированная версия Node.js рассчитана на Linux-системы, включая Debian 10 и Ubuntu 20.04, а также для macOS 10.15+. Из-за проблем со сборкой движка V8, разработанного компанией Google, временно прекращено формирование 32-разрядных сборок для Windows, или потребуется использование Windows Subsystem for Linux (WSL). Оптимизация в обновлении Node.js заключается и в улучшениях движка V8 (рис. 1), на которой и основана среда. V8 поддерживает использование динамически связанных общих объектов, написанных на C ++, в связке с JavaScript. Добавление новых функций и методов, расширение API, ускорение инициализации полей классов – всё это стало доступно в серверной JavaScript-платформе Node.js 18.0.

Динамика производительности с обновлением версии движка V8

Динамика производительности с обновлением версии движка V8

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

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

Оптимизация без повышения версии Node.js

  • 1. Использование цикла for…in в качестве базового метода снижает производительность до 13330 запросов в секунду.
  • 2. Использование [].map и filter показывает результат в 13316 запросов в секунду.
  • 3. Стандартный цикл for показывает результат 16015 запросов в секунду, что намного ближе к эталону.

Ту же аналогию можно провести и с другими базовыми методами, используемыми в расчетах и обработке данных. Так, Math.round(el*100)/100 в 2 раза быстрее чем toFixed(2)

На производительность приложения влияют и следующие факторы:

  •  в Node.js многие задачи, интенсивно использующие ЦП, зависят от пула потоков. Хотя он не блокирует асинхронный ввод-вывод, он замедляет работу API, что приводит к задержкам ответов для пользователя. Запрос на регистрацию может сопровождаться хэшированием пароля, что занимает 100 мс, и для этой процедуры приходится ждать пул потоков;
  •  Node.js работает в одном потоке, поэтому производительность нашего кода напрямую влияет на все приложение. Например, использование JSON.parse может замедлить работу API. Нужно учитывать также размер данных, трафик, наличие циклов и рекурсивных функций – всё это может стать причиной возникновения проблем или недоступности приложение;
  •  базовое приложение покажет разное время исполнения при изменении частоты процессора. Так для 8-ядерного процессора с тактовой частотой 2,1 ГГц Node.js 17 покажет результат в 30 тысяч обработанных запросов в секунду, а на процессоре с частотой 3,6 ГГц число запросов возрастает до 45 тысяч.

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

Заключение

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

Повысить версию NodeJS на VPS

Если у вас установлена Node.js версии 12.22.9, вы можете обновить ее до более новой стабильной версии, такой как Node.js v16.x.x. Вот как можно обновить Node.js через Node Version Manager (NVM), если он не установлен:

Если NVM еще не установлен на вашем сервере, выполните следующие команды:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Это установит NVM. После завершения установки перезагрузите терминал или выполните source ~/.bashrc, чтобы активировать NVM.

Установите более новую версию Node.js:

Теперь можно установить более новую версию Node.js. Например, для установки Node.js v16.x.x выполните:

Используйте установленную версию:

Как обновить версию node js

Why OpenBLD DNS?

As result of using OpenBLD DNS

  • No advertising on web-sites
  • Howe network more secure
  • No promo on mobile games for children
  • No ads in mobile apps
  • No ads in games
  • Computer works more faster
  • Reduce Internet traffic
  • Reduce CPU load
  • Reduce memory usage
  • Reduce computer, phone temperature
  • Increase autonomy life for mobile devices
  • Battery has more power

More Open Source from Sys-Adm.in Lab

Cactusd �� Project

Download/Upload, merge, divide by category and publish a domain name block lists and IP addresses as merged files.

DNS �� Hole

Block ads, trackers, and malware with domain plain and regex lists from the DNS-Hole project.

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

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