#javascript #node.js #perf #flamegraph
#javascript #node.js #perf #flamegraph
Вопрос:
Я пытаюсь профилировать REST API NodeJS с помощью утилиты perf. используемая мной команда perf record -F 99 -p 5395 -g -- sleep 60
5395 является идентификатором процесса. Он работает правильно и записывает данные в файл perf.data.
Однако, когда я пытаюсь создать отчет из него, используя
[ perf record: Woken up 6 times to write data ]
[ perf record: Captured and wrote 1.360 MB perf.data (~59425 samples) ]
perf script > out.perf
, я получаю сообщение об ошибке Failed to open /tmp/perf-5395.map, continuing without symbols
. Что в основном означает, что perf не удалось декомпилировать код, чтобы показать код javascript в выходном файле. Как получить этот файл карты? Чего мне не хватает?
Ответ №1:
Отсутствует —perf_basic_prof_only_functions на узле.
Например. node --perf_basic_prof_only_functions app.js
Комментарии:
1. Я новичок в Linux. Не могли бы вы подробнее
perf record --perf_basic_prof_only_functions -F 99 -p 26882 -g -- sleep 60
рассказать мнеunknown option
о perf_basic_prof_only_functions »2. Добавьте это в свой процесс узла следующим
node --perf_basic_prof_only_functions app.js
образом, затем используйтеperf
, как и раньше.