некоторого события с сервера. В коде есть ряд оповещений через console.log(). При загрузке этой штуки в systemd в виде исполняемого скомпилированного файла, оно ест около 700МБ оперативки, а с закомментированными console.log() — в 10 раз меньше. Те, кто запускают, говорят, что, возможно, нода не делает flush при записях в стандартный поток вывода. Я бы не хотел убирать вообще все console.log() из приложения, подскажите, в чём может быть дело и куда копать? Я знаю, что под капотом Node.js использует в console.log() process.stdout.write(). Может ли мне помочь замена на этот метод моих console.log() ?
А как в консоль попадают логи, когда ты деплоишь проект на какой-то сервис? Я думаю, тамошние дядьки знают как правильно это делать
А 700 мб это проблема? И как именно логи формируются? Может там большая строка по кусочкам нарезана, и потому gc не может её почистить
Нет, там ПО на какую-то плату кладут (собирают бинарник самостоятельно, я не знаю, как, я у себя для теста собирал npm-пакетом pkg) и запускают в линуксе. Там просто дали 2 версии кода им: с console.log() и с закомментированными console.log(), они пересобрали 2 раза и сказали, что такая разница
Ну вообще нежелательно, там будет ещё одно более мощное ПО, которое не только качает файлы, и console.log() в ней тоже будут какие-то минимальные нужны. Да по идее там не сильно большая строка (ну может символов 150 максимум в паре мест, а остальное — короче). Всего там 2ГБ, но они говорят, что под их программы тоже нужна память, поэтому утверждают, что 700МБ — это много
Может быть там где-то был объект выведен. Я читал, что объекты лучше выводить в консоль JSON.stringify(), это так?
Проверь 🤷♂ У тебя есть исходники и возможность разобраться с задачей, у меня нет
Да это понятно, да, вопрос вообще был в том, куда стоит посмотреть, если не получится. В принципе, я понял, спасибо!
Обсуждают сегодня