Улучшение производительности¶
Обеспечение высокого уровня производительности и надежности Node.js приложений достигается соблюдением простых рекомендаций и правил.
1. Минимизируйте использование синхронных функций, особенно при выполнении операций ввода/вывод, которые блокируют выполнение цикла событий.
1 2 3 |
|
2. Обрабатывайте отдачу статического контента с помощью функций промежуточной обработки.
1 |
|
3. Предусматривайте обработку ошибок при выполнении каждой операции, чтобы предотвратить аварийное завершение процесса и дать пользователю подробное сообщение о том, что он сделал не так и что привело к сбою в работе приложения.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
4. Настройте сжатие gzip, которое уменьшает размер передаваемых данных любого формата, что увеличивает скорость обмена данными между клиентом и сервером.
1 2 3 |
|
5. Указывайте при запуске Node.js приложения на сервере значение production
для переменной среды окружения process.env.NODE_ENV
. В связке с Express активация рабочей среды инициирует сохранение файлов шаблонов и стилей в кэш и генерацию сообщений об ошибке без полного StackTrace
. Экспериментально выявлено, что все перечисленное увеличивает быстродействие приложения примерно в три раза. Переменные окружения Node.js задаются в операционной системе.
6. Используйте кластеризацию при запуске приложения для распределения нагрузки между дополнительными экземплярами.
7. Управляйте приложением с помощью менеджера процессов, например, pm2. Использование pm2 позволит вам настроить автоматический перезапуск процесса приложения при возникновении необработанной ошибки и тем самым обеспечит его непрерывную работу. Также менеджер процессов поможет вам отслеживать количество потребляемых ресурсов.