주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

코드의 성능 측정하기

R2026a

성능 시간 측정 함수 개요

timeit 함수와, 스톱워치 타이머 함수인 tic과 toc을 사용해 코드가 실행되는 데 걸리는 시간을 측정할 수 있습니다. 함수 실행 시간을 엄격하게 측정하려는 경우에는 timeit 함수를 사용하십시오. 전체 함수가 아니라 더 작은 코드 일부에 대한 시간을 측정하려면 tic과 toc을 사용하십시오.

함수 호출 정보나 개별 코드 라인의 실행 시간 정보 등과 같은 코드 성능에 대한 자세한 내용을 확인하려면 MATLAB® 프로파일러를 사용하십시오. 자세한 내용은 코드를 프로파일링하여 성능 개선하기 항목을 참조하십시오.

시간 함수

함수를 실행하는 데 필요한 시간을 측정하려면 timeit 함수를 사용하십시오. timeit 함수는 지정된 함수를 여러 번 호출하여 측정된 값의 중앙값을 반환합니다. 이 함수는 측정할 함수에 대한 핸들을 받고 일반적인 실행 시간을 초 단위로 반환합니다. 작업 공간에 정의된 두 개의 입력 인수, x와 y를 사용하는 함수 computeFunction을 정의했다고 가정하겠습니다. timeit을 사용하여 함수를 실행하는 데 걸리는 시간을 계산할 수 있습니다.

f = @() myComputeFunction(x,y); % handle to function
timeit(f)

코드의 부분적 실행 시간 측정하기

프로그램의 일부를 실행하는 데 걸리는 시간을 측정하거나 프로그램의 일부를 서로 다르게 구현한 것에 대한 속도를 비교해야 할 경우, 스톱워치 타이머 함수 tic과 toc을 사용할 수 있습니다. tic을 불러오면 타이머가 시작되고, 그 다음에 오는 toc이 경과 시간을 읽습니다.

tic
   % The program section to time. 
toc

때로 프로그램이 너무 빨리 실행되어 tic과 toc이 유용한 데이터를 제공하지 못하는 경우도 있습니다. 코드가 1/10초보다 빠르게 실행되는 경우에는 루프에서 실행되는 코드 시간을 측정한 다음, 평균을 구해서 한 번의 실행에 걸리는 시간을 찾을 수 있습니다.

cputime 함수와 tic/toc, timeit 함수 비교

timeit이나 tic과 toc을 사용하여 코드의 성능을 측정하는 것이 좋습니다. 이러한 함수는 wall-clock 시간을 반환합니다. tic 및 toc과 달리 timeit 함수는 코드를 여러 번 호출하며, 따라서 최초 실행에 걸리는 시간도 고려합니다.

cputime 함수는 전체 CPU 시간을 측정하고 모든 스레드에 걸쳐 합계를 계산합니다. 이 측정 방식은 timeit이나 tic/toc이 반환하는 wall-clock 시간과 다르며, 왜곡된 정보를 줄 수 있습니다. 예를 들면 다음과 같습니다.

  • pause 함수의 CPU 시간은 일반적으로 작지만, wall-clock 시간은 MATLAB 실행이 일시 중지된 실제 시간을 고려합니다. 따라서 wall-clock 시간이 더 길 수 있습니다.

  • 함수가 4개의 처리 코어를 균일하게 사용할 경우 CPU 시간은 대략적으로 wall-clock 시간보다 4배 더 클 수 있습니다.

성능 측정을 위한 팁

코드 성능을 측정할 때 다음 팁을 고려하십시오.

  • 충분히 많은 코드 부분의 실행 시간을 측정합니다. 이상적으로는 코드 실행 측정 시간이 1/10초를 초과해야 합니다.

  • 시간을 측정하려는 코드를 명령줄에서 또는 스크립트 내부에서 시간을 측정하는 대신, 함수에 넣어 시간을 측정합니다.

  • 최초 실행에 걸리는 시간을 측정하지 않는 한 코드를 여러 번 실행합니다. timeit 함수를 사용합니다.

  • 성능을 측정할 경우 clear all을 사용하지 않습니다. 자세한 내용은 clear 함수를 참조하십시오.

  • 출력값을 기본 출력 변수인 ans로 내보내지 말고 변수를 지정하여 내보냅니다.

참고 항목

| | |

도움말 항목