성능 패널로 Node.js 성능 프로파일링

Nancy Li
Nancy Li
Dale St. Marthe
Dale St. Marthe

Performance 패널을 사용하여 Node.jsDeno 애플리케이션의 성능을 프로파일링합니다.

CPU 프로필이란 무엇인가요?

CPU 프로필은 일정 기간 동안 CPU가 사용된 방식을 보여주는 보고서입니다. CPU 시간을 가장 많이 사용하는 프로그램, 실행 중인 프로세스, 각 상태에서 소요된 시간을 표시할 수 있습니다. CPU 프로필을 사용하면 성능 병목 현상을 식별하고 CPU 리소스 사용률을 최적화할 수 있습니다.

Node용 DevTools 열기

  1. 명령줄에서 다음을 실행합니다.

    Node.js

    node --inspect file-name.js
    

    데노

    deno --inspect file-name.js
    
  2. 다음 방법 중 하나를 사용하여 Node용 DevTools에 연결합니다.

    • DevTools를 열고 상단의 DevTools 작업 모음에서 녹색 노드 버튼을 클릭합니다.
    • 주소 표시줄에 chrome://inspect를 입력하고 다음 중 하나를 클릭하세요.

      • Devices 아래에서 Node용 전용 DevTools를 엽니다.
      • 프로파일링할 타겟 아래에서 검사를 선택합니다.

    Node용 DevTools를 여는 모든 방법

CPU 프로파일링

CPU를 프로파일링하려면 Performance 패널을 열고 radio_button_checked Record 버튼을 두 번 클릭하여 프로파일링을 시작하고 종료합니다.

Record 버튼과 VM 인스턴스 선택기

프로파일링 결과 분석

녹화를 중지하면 실적 패널에서 녹화 관련 데이터를 구성하여 '프로필'에 표시합니다. 다음 탭을 사용하여 프로파일링 데이터를 분석하세요.

  • 타임라인 개요. 상단의 작업 표시줄 아래에 있습니다. 타임라인에 CPU 및 NET 활동 차트를 표시합니다. 이를 사용하여 성능 병목 현상을 식별합니다.

    타임라인 개요

  • Bottom-Up: 이 탭을 사용하면 녹화의 선택된 부분을 검사하고 개별 활동에 소요된 집계 시간을 확인할 수 있습니다.

    상향식 탭

  • Call Tree: 이 탭에는 녹음에서 선택한 부분의 루트 활동이 표시됩니다. 루트 활동에는 호출 스택도 중첩되어 있습니다. 이 탭을 사용하면 가장 많은 활동을 하는 활동을 파악할 수 있습니다.

    호출 트리 탭

  • 이벤트 로그: 이 탭에는 녹화에서 선택한 부분의 활동이 발생한 순서대로 나열됩니다.

    이벤트 로그 탭

console.profile() 명령어로 프로파일링

DevTools를 사용하면 console.profile() 명령어로 JavaScript CPU 성능을 프로파일링할 수 있습니다. 이 명령어를 코드에 추가한 후 파일을 실행하거나, 코드를 복사하여 콘솔에 붙여넣을 수 있습니다. 실적 패널에 결과가 표시됩니다.

이 명령어를 사용하려면 다음 단계를 따르세요.

  1. 코드를 console.profile()console.profileEnd()로 묶습니다. 예를 들면 다음과 같습니다.

    console.profile( profile ${i} );
    // Code to be profiled
    doSomething();
    console.profileEnd();
    
  2. 다음 두 가지 방법 중 하나로 코드를 실행합니다.

프로필 작성이 완료되면 결과가 실적 패널에 자동으로 표시됩니다.