오늘은 IDL에서 처리속도를 테스트하는 방법을 살펴볼까 합니다. 사실 거창한 얘기는 아니고, 내 컴퓨터에서 IDL의 작업 수행 속도가 얼마나 빠른지는 간단하게 확인볼 수 있는 방법을 얘기하려는 것인데요. 아래와 같이 IDL의 커맨드 입력창에서 time_test라는 명령을 입력하고 엔터키를 누르면 됩니다.
IDL> time_test
그러면 IDL이 뭔가 여러가지 테스트 작업들을 수행하고, 그 작업들을 끝내는데 총 소요되었던 시간을 초 단위로 표시해줍니다. 한번 가벼운 마음으로 해보세요. 그리고 time_test외에 time_test2, time_test3, time_test4까지 있습니다. 뒷 번호가 커질수록 좀 더 많은 작업을 수행하며, 소요시간도 좀 오래 걸립니다. 제가 메인으로 사용하는 PC는 지금으로선 사양이 별로인데, time_test4의 경우 소요시간이 약 4초 정도가 나옵니다. 물론 사양에 따라 이보다 더 걸릴 수도 아니면 덜 걸릴 수도 있습니다. 아마 다들 좋은 PC 쓰실테니까 저보다는 더 잘 나오실겁니다.
이와 유사하면서 그래픽 처리 속도를 테스트할 수 있는 graphics_times라는 명령도 있습니다. 이 명령을 실행하면 몇 가지 그래픽 작업을 처리하고 그에 소요된 시간을 알려줍니다. 이 명령도 역시 위와 마찬가지로 4 종류가 있습니다. 물론 graphics_times4가 제일 오랜 시간을 잡아먹는 명령입니다. 이 명령의 경우 작업이 완료되기까지 제 PC에서는 총 11초 정도가 걸립니다.
IDL> graphics_times
그리고 처리시간과 관련된 팁을 하나 더 알려드리면, IDL의 명령들 중에 TIC과 TOC이라는 것들이 있습니다. 이 명령들은 마치 초시계를 켰다가 정지시켜서 그 사이에 경과된 시간을 측정하는 듯한 역할을 합니다. 그래서 우리가 작성한 프로그램이 수행되는데 걸리는 총 소요시간이 얼마일지 궁금할 경우 이 명령들을 간단하게 활용할 수 있습니다. 예를 들면, 다음과 같은 방식이면 됩니다.
PRO test_program
TIC; timer on!
p = PLOT(/TEST)
FOR i = 0, 35 DO p.Rotate, 10
TOC; timer off!
END
이 프로그램은 임의의 플롯을 그린 후 이 플롯을 10도씩 36회, 즉 360도 회전을 시키는데 걸리는 시간을 측정하여 알려줍니다. 여러분들의 프로그램에서도 특별히 소요시간이 궁금한 과정이 있다면 그 과정의 시작과 끝 부분에서 TIC, TOC 명령들을 삽입해주면 됩니다. 이러한 기능들이 아주 필수적이거나 결정적인 역할을 하는 것은 아니겠지만, 내가 작성한 프로그램이 원활하고 효율적으로 처리작업을 수행하는가를 확인하는 역할은 충분히 해주는 것 같아서 한번 소개해봅니다.
'IDL > Miscellaneous' 카테고리의 다른 글
IDL 기본교육 잘 마쳤습니다 (사진 포함) (0) | 2014.05.30 |
---|---|
타이머(TIMER) 이벤트의 활용 방법 (0) | 2014.05.30 |
한국의 태양활동 분석기술을 미국 NASA에 제공! (0) | 2013.12.05 |
!CONST로 과학기술 분야의 다양한 상수들을 사용해봅시다 (0) | 2013.10.07 |
IDL로 블록 격파 게임을?? (0) | 2013.07.23 |