코드 실행 속도에 영향을 미치는 항목
잠재적인 병목 현상
대량의 데이터와 다수의 객체를 사용하여 작업하는 경우 성능 문제가 발생할 수 있습니다. 이 경우, 총 실행 시간에 영향을 미치는 두 가지 요소의 효과를 최소화하여 그래픽스 코드의 실행 속도를 향상시킬 수 있습니다.
객체 생성 — 새 그래픽스 객체를 장면에 추가합니다.
화면 업데이트 — 그래픽스 모델을 업데이트하고 렌더링할 변경 내용을 전송합니다.
이러한 작업이 특정 프로그래밍 패턴의 총 실행 시간에 큰 영향을 미치지 못하도록 방지할 수 있는 경우가 많습니다. 실행 시간을 이 시간들의 합으로 생각하십시오.
총 실행 시간 = 객체 생성에 걸리는 시간 + 업데이트에 걸리는 시간 + (계산 등에 걸리는 시간)
다음에 나오는 예제에서는 객체 생성 및 화면 업데이트에 소비되는 시간을 최소화하는 방법을 보여줍니다. 앞에 나온 표현식에서는 실제 화면 렌더링에 소비되는 시간은 실행 시간에 포함되어 있지 않습니다.
성능을 향상시키는 방법
코드를 프로파일링하여 응용 프로그램과 관련된 알고리즘, 계산 및 기타 병목 현상을 최적화합니다. 그런 후, 코드가 객체 생성 함수에 시간을 많이 소비하는지 아니면 drawnow
(업데이트)에 시간을 많이 소비하는지를 확인합니다. 총 실행 시간을 나타내는 식에서 시간이 더 많이 걸리는 작업부터 시작해 두 작업을 다 최적화할 수 있습니다.
자신의 코드에 대해 다음을 확인합니다.
기존 객체를 업데이트하는 대신 새 객체를 생성하는 경우라면, 현명한 객체 생성를 참조하십시오.
정적 데이터가 일부 포함된 객체를 업데이트하는 경우라면, 정적 데이터 업데이트 방지하기를 참조하십시오.
객체 핸들을 검색하는 경우라면, 반복되는 객체 검색 피하기를 참조하십시오.
객체를 회전, 평행 이동 또는 스케일링하는 경우라면, 효과적으로 객체 변환를 참조하십시오.
동일한 루프에서 속성을 쿼리하고 설정하는 경우라면, 그래픽스 속성을 가져오고 설정하기 위한 코드 최적화하기를 참조하십시오.