가이드 개발 가이드

성능 킬러 찾기

온라인 서비스의 성능 최적화는 거의 미신입니다. 한 무리의 프로그래머들은 이해할 수 없는 많은 양의 코드에 직면했고, 상대방이 모든 cpu를 사용하고 있는지 추측했습니다. 로그를 기록하는 데 많은 시간을 할애하고 밤낮으로 방대한 로그를 뒤적이며 성능 저하를 찾으려고 노력합니다.

그러나 fibjs를 사용하면 이 모든 것이 더 간단해집니다. fibjs는 강력한 CPU와 메모리 프로파일러를 지원하기 때문에 사용이 매우 편리합니다.

통나무

fibjs 시작 cpu 프로파일러는 매우 간단하며 시작 --prof옵션을 립니다. 기본 로깅 간격은 1000ms이며 심층 최적화를 사용하면 로그에 대한 보다 정확한 분석이 필요한 경우 --prof-interval설정된 간격을 사용할 수 있습니다 . 다음 예는 fibjs 작업 로그를 10ms마다 기록합니다.

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를 열면 이 로그의 화염 지도 교수 를 볼 수 있습니다. 클릭하여 전체 크기 이미지를 볼 수 있고, 전체 크기 이미지에서 마우스를 사용하여 더 자세한 정보를 볼 수 있습니다. : 교수 svg .

화염 지도의 해석

생성된 플레임 그래프에서 각 색상 블록은 기록 지점을 나타내며, 색상 블록이 길수록 더 많이 기록되고, 각 라인은 호출 스택의 레이어를 나타내며, 더 많은 레이어가 호출될수록 더 많은 레이어가 호출됩니다. 거꾸로 배치하면 색상 블록이 낮을수록 원래 기능이 더 커집니다.

색상 블록에는 두 가지 유형이 있습니다. 하나는 빨간색이고 다른 하나는 파란색입니다. fibjs의 프로파일러에서 빨간색은 JavaScript 작업을 나타내고 파란색은 io 작업 또는 기본 작업을 나타냅니다. 해결해야 할 문제에 따라 집중해야 할 영역이 달라집니다. 예를 들어 높은 CPU 점유율 문제를 해결해야 하는 경우 이때 빨간색 블록에 주의를 기울여야 하며, 응용 프로그램의 경우 CPU 점유율이 높지 않지만 응답이 느린 경우 다음을 수행해야 합니다. 파란색 블록에주의하십시오. 상단 근처의 색상 블록이 클수록 더 중요하게 생각하고 최적화해야 합니다.

👉 [ 데스크탑 애플리케이션의 빠른 개발 ]