Руководство по развитию

Найдите убийцу производительности

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

Однако с fibjs все это станет проще. Поскольку в fibjs есть мощная поддержка профилировщика ЦП и памяти, и им очень удобно пользоваться.

Бревно

fibjs start cpu profiler чрезвычайно прост, увеличьте --profпараметр запуска . Интервал регистрации по умолчанию составляет 1000 мс, при глубокой оптимизации вам понадобится более точный анализ журнала, затем вы можете использовать --prof-intervalустановленный интервал. В следующем примере журнал работы fibjs записывается каждые 10 мс.

1
fibjs --prof --prof-interval=10 main.js

Журнал обработки

После завершения нормальной работы или использования конца процесса ctrl_c текущий каталог будет генерировать файл журнала, имя файла fibjs-xxxx.log, в это время вы можете использовать --prof-processсгенерированную обработку журнала:

1
fibjs --prof-process fibjs-xxxx.log prof.svg

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

Интерпретация карты пламени

На сгенерированном графике пламени каждый цветной блок представляет точку записи. Чем длиннее цветной блок, тем больше раз он был записан; каждая линия представляет слой стека вызовов, и чем больше слоев, тем больше слоев вызывается; стек размещается в перевернутом виде, чем ниже цветовой блок, тем больше исходная функция.

Есть два типа цветовых блоков: красный и синий. В профилировщике fibjs красный цвет представляет операции JavaScript, а синий - операции io или собственные операции. В зависимости от проблемы, которую вам нужно решить, область, на которой вам нужно сосредоточиться, будет отличаться. Например, если вам нужно решить проблему высокой загрузки ЦП, вам нужно обратить внимание на красный цветовой блок в это время; и если ваше приложение, загрузка ЦП невысока, но отклик медленный, вам нужно обратите внимание на блок синего цвета. Чем больше цветовой блок в верхней части, тем важнее его работа и оптимизация.

👉 [ Быстрая разработка настольных приложений ]