Распространенной проблемой при работе над проектом JavaScript Node.js является ошибка «JavaScript heap out of memory». Эта ошибка обычно возникает, когда памяти по умолчанию, выделенной вашей системой для Node.js, недостаточно для запуска большого проекта.

Эта ошибка распространена независимо от того, запускаете ли вы свой проект в Windows, macOS или дистрибутиве Linux, таком как Ubuntu. К счастью, есть несколько простых исправлений, которые могут помочь устранить ошибку «Недостаточно памяти для кучи JavaScript».

Что такое куча памяти?

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

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

Если вы запускаете относительно большой проект, ему может потребоваться больше памяти, чем выделенный по умолчанию фрагмент. Это может привести к сбою вашего проекта и регистрации ошибки «JavaScript heap out of memory».

instagram viewer

Как исправить нехватку памяти в куче JavaScript в Windows

Независимо от вашей IDE, исправление «JavaScript heap out of memory» идентично.

Вы можете добавить переменную среды через панель управления чтобы увеличить память, выделенную для проекта Node.js.

  1. Открой Стартовое меню, ищи Расширенные настройки системыи выберите Лучшее совпадение.
  2. В диалоговом окне нажмите на Переменные среды, затем нажмите на Новый от любого Системные переменные или же Пользовательские переменные. Первое относится ко всем пользователям на вашем компьютере, а второе — только к вашей текущей учетной записи.
  3. в Имя переменной поле введите NODE_OPTIONS. в Значение переменной поле введите --max-old-space-size=4096. Это значение выделит 4 ГБ виртуальной памяти для Node.js. Чтобы установить другое значение, умножьте требуемую сумму в ГБ на 1024 (значение переменной должно быть в МБ).
  4. Нажмите на ХОРОШО чтобы сохранить изменения, затем нажмите Подать заявление и, наконец, нажмите ХОРОШО еще раз. Перезапустите проект, чтобы изменения вступили в силу.

Вы также можете установить переменную среды через терминал Windows PowerShell.

Запустите терминал PowerShell, введите следующую команду и нажмите Enter:

$env: NODE_OPTIONS="--max-old-space-size=4096"

Если вы хотите только временно увеличить объем кучи, выполните приведенную ниже команду в терминале PowerShell перед запуском проекта:

установлен NODE_OPTIONS=--max-old-space-size=4096

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

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

Как исправить ошибку JavaScript Heap Out of Memory в macOS и Linux

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

В терминале перед запуском проекта введите следующую команду и нажмите Enter:

экспорт NODE_OPTIONS=--max-old-space-size=4096

Это выделит 4 ГБ виртуальной памяти для пространства выполнения Node.js. Чтобы установить другой объем памяти, замените 4096 с необходимой суммой в МБ.

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

Избегайте ошибки JavaScript Heap Out of Memory

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

Хотя увеличение выделенной памяти временно устранит проблему, вы должны найти основную причину и устранить ее.