Main Content

이 페이지의 내용은 이전 릴리스에 관한 것입니다. 해당 영문 페이지는 최신 릴리스에서 제거되었습니다.

코드 병목 현상 찾기

프로파일러를 사용하여 어떠한 함수가 실행 시간 중 가장 많은 시간을 차지하는지 확인합니다. 가능한 경우 언제나 알고리즘과 계산의 실행 시간을 줄여 성능을 향상시킬 수 있습니다.

코드를 최적화했으면 다음 기법을 사용하여 객체 생성 및 디스플레이 업데이트에 대한 오버헤드를 줄입니다.

예를 들어, myPlot 함수를 사용하여 10×1000 요소 배열을 플로팅한다고 가정하겠습니다.

function myPlot
   x = rand(10,1000);
   y = rand(10,1000);
   plot(x,y,'LineStyle','none','Marker','o','Color','b');
end
profile on
myPlot
profile viewer

이 코드를 프로파일링하면 대부분의 시간이 myPlot 함수에 소비되는 것을 확인할 수 있습니다.

x 배열과 y 배열에 1000개 열의 데이터가 포함되어 있으므로 플롯 함수는 1000개의 line 객체를 생성합니다. 이 경우, 10000개의 데이터 점을 가지는 한 개의 line을 생성하여 동일한 결과를 얻을 수 있습니다.

function myPlot
   x = rand(10,1000);
   y = rand(10,1000);
   % Pass x and y as 1-by-1000 vectors
   plot(x(:),y(:),'LineStyle','none','Marker','o','Color','b');
end
profile on
myPlot
profile viewer

이 경우 객체 생성 시간이 주요한 요소입니다.

태생적으로 느린 작업을 방지하거나 최소화하는 방법을 이해함으로써 실행 속도를 향상시킬 수 있는 경우가 많습니다. 이 툴을 사용하여 성능을 개선하는 방법에 대한 자세한 내용은 함수 도움말 문서의 profile 항목을 참조하십시오.