Запустить скрипт на сервере nodeJS с ограничением памяти
У меня сервер nodejs развернут на heroku. Он не сильно загружен, за исключением раз в день, когда он анализирует довольно большой фрагмент данных (файл ~20 Мб JSON).
Это займет около 20 секунд на MacBook Pro.
Heroku начинает жаловаться на ограничение памяти Error R14 (Memory quota exceeded)
и в конце концов завершает процесс.
Как заставить скрипт работать под указанным пределом памяти? Это нормально, если это займет несколько минут вместо 20 секунд.
1 ответ
Вы можете проверить локально, установив --max_old_space_size
до предела, который бы подходил к вашему динамо:
node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js
Этот вопрос ("как может неуказанная JS-программа использовать меньше памяти") слишком широк, чтобы дать на него конкретный ответ. Как правило, вам нужно выделить меньше объектов одновременно. Локальный запуск вашего приложения должен помочь вам определить горячие точки (вы получите ошибки выделения).