Как найти функцию, которая работает в узле рекурсивно? - PullRequest
0 голосов
/ 26 января 2019

Я новичок в разработке узлов и углов. Недавно я столкнулся с этой проблемой - «ФАТАЛЬНАЯ ОШИБКА: неэффективные компактные метки вблизи предела кучи Выделение не удалось - кучи JavaScript не хватает памяти». Может кто-нибудь сообщить мне, как найти функцию, которая потребляет большую часть памяти, ведущую к этой проблеме? Я не могу понять причину?

Я использую сервер узла (Node.js): 10.15.0 Машинопись: 3.2.2

1 Ответ

0 голосов
/ 26 января 2019

есть несколько решений для этого.

Самый простой с клиникой узла

Вам необходимо:

// install
npm install -g clinic
// run your process and see result
clinic doctor -- node my-process.js
// you can also use bubbleprof for network latency or flame for bottlenecks

Когда вы остановитепроцесс или процесс завершается, доктор создаст HTML-отчет с этой информацией.

Другой способ найти проблему, используя стандартные аргументы узла :

// will generate a file isolate-0xnnnnnnnnnnnn-v8.log like (isolate-000001AADA5C7900-v8)
node --prof my-process.js
// to make it human readable
node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt

Другой способэто:

// run your process with inspect:
node --inspect=0.0.0.0:9229 my-process.js
// then run chrome dev tools and connect it to <IP>:9229
go to this url on your Chrome: chrome://inspect/#devices
// then you will able to profile the cpu and take snapshots of memory usage

PS в Chrome Dev Tools вы увидите это, чтобы открыть:

open node dev tools

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...