Руководство по разработке руководства

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

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

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

Журнал

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

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

Обработка журналов

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

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

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

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

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

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