For the complete documentation index, see llms.txt. This page is also available as Markdown.

워크플로 프로파일링

Chrome 호환 프로파일링 추적으로 워크플로 실행 시간을 측정하고 병목을 찾습니다.

프로파일링을 활성화하면 워크플로의 실행 시간을 측정하고 성능 병목을 식별할 수 있습니다. 프로파일링 추적 파일은 시각화를 위해 Chrome의 내장 추적 도구와 호환됩니다.

예제 워크플로

이 가이드의 스크린샷에서는 다음 워크플로를 예제로 사용합니다. 여기에는 2x 객체 감지, 동적 크롭, Google Gemini 호출, 그리고 여러 시각화 단계가 포함됩니다:

Example workflow in the Roboflow editor
아래 프로파일링 스크린샷에 사용된 예제 워크플로

Inference SDK로 프로파일링하기

HTTP 클라이언트를 통해 워크플로를 실행할 때 프로파일링을 활성화하려면, 먼저 셀프 호스팅 Inference Server 와 함께 ENABLE_WORKFLOWS_PROFILING=True 환경 변수로 실행해야 합니다. 그런 다음 enable_profiling=True:

프로파일링이 활성화되면 추적 파일은 기본적으로 ./inference_profiling/ 에 자동으로 저장됩니다. 각 추적 파일의 이름은 workflow_execution_tack_{timestamp}.json.

프로파일링 추적 보기

프로파일링 추적은 Chrome Tracing 형식으로 저장됩니다. 시각화하려면:

  1. Chrome을 열고 다음으로 이동합니다: chrome://tracing/.

  2. 를 클릭한 다음 Load 를 클릭하고 추적 파일을 선택합니다(예: workflow_execution_tack_2026_03_30_10_46_04.json).

  3. 타임라인 보기를 사용하여 각 워크플로 단계의 실행 시간을 살펴보세요.

임의의 구간을 클릭하면 해당 구간의 지속 시간, 범주, 그리고 인수—예를 들어 어느 블록의 step_execution 을 보고 있는지—가 표시됩니다:

Chrome tracing timeline with a selected step

대부분의 시간은 2x 객체 감지(process 57)와 Gemini 호출(process 78)에 사용되었습니다. 확대하면 객체 감지 단계 사이에 다른 단계(감지 오프셋, 동적 크롭, 시각화 등)가 있는 것을 볼 수 있습니다:

Chrome tracing aggregated statistics view

핵심 세부 정보

세부 정보

추적 형식

JSON, Chrome의 chrome://tracing/ 도구

출력 위치

./inference_profiling/ 기본적으로(구성 가능)

파일 이름 지정

workflow_execution_tack_{YYYY_MM_DD_HH_MM_SS}.json

제한 사항

  • 컴파일 오버헤드: 워크플로 컴파일은 10~25ms의 지연을 추가하며, GPU 추론 시간이 이에 비해 비슷한 작은/빠른 모델에서는 이 영향이 큽니다. 이 오버헤드는 비디오 처리의 경우 시작 시 한 번만 발생합니다.

  • 실행 엔진 지연: 워크플로 실행 엔진은 프레임당 명목상 약 1~2ms의 지연을 추가합니다.

  • 동적 블록: 동적 블록을 사용하는 셀프 호스팅 배포에서는 pydantic 모델 재빌드로 인해 요청당 +100~140ms의 지연이 발생할 수 있습니다. 이는 호스팅 플랫폼이나 컴파일이 한 번만 일어나는 비디오 처리에는 해당하지 않습니다.

  • 모델 블록의 지배적 비중: 일반적으로 실행 시간의 약 95%는 모델 추론 자체에 사용되며, 여기에는 추가적인 데이터 변환과 메타데이터 관리가 포함됩니다.

성능 팁

  • 워크플로 정의는 기본적으로 15분 동안 캐시됩니다. 필요하면 use_cache=False 에서 run_workflow() 를 사용하여 캐싱을 우회하세요.

  • 비디오 처리의 경우, 컴파일 오버헤드는 시작 시 한 번만 발생하므로 무시할 수 있습니다.

  • 모델 추론, 데이터 변환 또는 워크플로 오케스트레이션 중 어디에 병목이 있는지 식별하려면 워크플로를 프로파일링하세요.

마지막 업데이트

도움이 되었나요?