IDL/Miscellaneous

IDL의 처리속도 테스트

이상우_idl 2014. 5. 2. 21:02
728x90
반응형

오늘은 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 명령들을 삽입해주면 됩니다. 이러한 기능들이 아주 필수적이거나 결정적인 역할을 하는 것은 아니겠지만, 내가 작성한 프로그램이 원활하고 효율적으로 처리작업을 수행하는가를 확인하는 역할은 충분히 해주는 것 같아서 한번 소개해봅니다.


반응형