가이드 개발 가이드

성능 킬러 찾기

온라인 서비스의 성능 최적화는 거의 미신입니다. 한 그룹의 프로그래머는 상대방이 모든 CPU를 사용하고 있는지 추측하면서 많은 양의 이해할 수없는 코드에 직면했습니다. 로그를 기록하는 데 많은 시간을 할애하고 밤낮으로 방대한 로그를 넘기면서 성능 킬러를 찾으십시오.

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

로그

Fibjs는 CPU 프로파일 러를 시작하는 것이 매우 간단합니다. 시작할 때 --prof 옵션 만 추가하면됩니다. 기본 로그 간격은 1000ms입니다. 최적화가 심화되면 더 높은 정확도로 로그를 분석해야합니다. 이때 --prof-interval 사용하여 간격 --prof-interval 설정할 수 있습니다. 다음 예에서 fibjs 작업 로그는 10ms마다 기록됩니다.

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

처리 로그

작업이 정상적으로 종료되거나 ctrl_c로 프로세스가 종료되면 현재 디렉터리에 로그 파일이 생성되고 파일 이름은 fibjs-xxxx.log 입니다. fibjs-xxxx.log --prof-process 사용하여 생성 된 로그 --prof-process 처리 할 수 ​​있습니다.

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

실행 후 브라우저에서 prof.svg를 열어이 로그의 플레임 다이어그램을 확인합니다. 교수 클릭하면 전체 크기 사진을 볼 수 있으며 전체 크기 사진에서는 마우스를 사용하여 더 자세한 정보를 볼 수 있습니다 : prof.svg .

화염 다이어그램 해석

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

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