함수 또는 루프의 실행 시간 계산하기

    반응형

    안녕하세요. 지지비입니다.
    이번 포스팅에서는 함수 또는 루프의 실행 시간을 계산하는 방법에 대해서 알아보도록 하겠습니다.

     

    1. 틱 카운트 (Tick Count)

    함수나 루프의 실행시간을 측정하기 위해서 일반적으로 사용하는 함수는 틱 카운트(Tick Count (ms))함수입니다. 이전 포스팅에서 알아보았던 절대 시간을 얻는 함수(날짜/시간을 초로 얻기)와는 다르게, 틱 카운트 함수는 랩뷰에서 특정 시간이 지남에 따라 출력값이 증가합니다. 틱 카운트 함수의 값은 U32 숫자형으로 0~4,294,967,295 사이의 값을 일정하게 증가하면서 출력해주는 함수입니다. 최대값이 넘으면 다시 0이 됩니다. 즉, 이 함수로 측정할 수 있는 최대 시간은 0 ~ 4294967295 ms로 약 3000시간입니다.

    따라서 틱 카운트 함수를 사용해서 특정 이벤트부터 계속해서 지난 시간(Elapsed Time)을 측정할 때 3000시간 이상은 측정할 수 없다는 것을 의미하므로, 신중하게 사용해야 합니다. 

    틱 카운트 함수는 함수 팔레트의 Timing에서 찾아볼 수 있습니다.

     

    2. 루프의 실행 시간 계산하기

    아래와 같이 간단하게 작성할 수 있습니다. 루프는 특정 작업을 반복하는 행위이기 때문에 작업 전/후에 틱 카운트 함수를 사용해 주고, 두 출력값을 빼 주면 중간의 작업 시간을 계산할 수 있습니다. 아래 블록다이어그램에서 작업 간의 시간은 100 ms의 지연이 들어있으므로 측정값(Elapsed Time)도 100 ms가 되면 맞는 걸로 볼 수 있겠습니다.

     

    루프가 시작되고 지난 최종 시간을 계산하려면 틱 카운트 함수의 최초 값을 루프 밖에 놓아주면 됩니다. 아래와 같은 방법으로 사용할 수 있습니다. 100 ms씩 총 20번을 반복하므로 최종적으로 2000 ms 정도의 값이 나오면 정상적으로 측정된다고 생각할 수 있겠습니다.

     

    3. 절대 시간으로 계산하기

    이전 포스팅에서 사용했었던 절대 시간을 얻는 함수인 날짜/시간을 초로 얻기(Get Date/Time In Seconds)함수를 사용해서 시간을 계산할 수도 있습니다. 하지만 위에서 언급한 틱 카운트를 사용할 때보다는 정확도가 떨어지므로, 1 ms보다 더 정확한 타이밍을 계산해야 할 때에는 틱 카운트 함수를 사용하는 것을 랩뷰에서 권장하고 있습니다(도움말).

    날짜/시간을 초로 얻기 함수를 사용해서 두 값을 빼면 '초'로 시간이 계산됩니다. 최종 값은 약 2초 정도가 나올 것으로 예상합니다.

     

     

    댓글

    Designed by JB FACTORY