개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.04 15:18

HRTimeStopWatch::getElapsedTicks에 대한 질문

목록
  • iOS연구가 14일 전 2025.07.04 15:18
  • 48
    1
제가 현재 HRTimeStopWatch 클래스의 getElapsedTicks 메서드를 공부 중인데,
이 메서드는 elapsed ticks를 반환한다고 합니다. 하지만 elapsed ticks란 무엇이며,
해당 메서드에서 elapsed ticks를 계산하는 방법에 대한 설명이 부족해 이해가 잘 안 가는 점이 있습니다.

getElapsedTicks 메서드의 내부 로직을 설명해 주시거나,
관련된 예제 코드를 함께 공유해 주시면 정말 도움이 될 것 같습니다.

아래는 예시입니다.

cpp

#include 



class HRTimeStopWatch {

public:

    void start() {}

    void stop() {}

    int64_t getElapsedTicks() {

        // elapsed ticks를 계산하는 로직

    }

};



int main() {

    HRTimeStopWatch stopwatch;

    stopwatch.start();

    // ...

    stopwatch.stop();

    int64_t elapsedTicks = stopwatch.getElapsedTicks();

    std::cout << "Elapsed ticks: " << elapsedTicks << std::endl;

    return 0;

}



위 코드에서 getElapsedTicks 메서드의 내부 로직을 어떻게 구현해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  14일 전



    HRTimeStopWatch 클래스의 getElapsedTicks 메서드는 elapsed ticks를 반환하는 메서드입니다. elapsed ticks란 CPU가 수행한 클럭 사이클의 수를 의미합니다.

    getElapsedTicks 메서드의 내부 로직은 다음과 같습니다.

    1. CPU 클럭 사이클의 수를 얻기 위해 `clock()` 함수를 사용합니다. `clock()` 함수는 CPU가 수행한 클럭 사이클의 수를 반환합니다.
    2. `clock()` 함수의 결과를 현재 시간과 비교하여 elapsed ticks를 계산합니다.

    다음은 예제 코드입니다.

    #hostingforum.kr
    cpp
    
    #include 
    
    #include 
    
    
    
    class HRTimeStopWatch {
    
    public:
    
        void start() {}
    
        void stop() {}
    
        int64_t getElapsedTicks() {
    
            // 시작 시간을 저장합니다.
    
            auto start = std::chrono::high_resolution_clock::now();
    
            
    
            // 중간에 시간을 저장합니다.
    
            auto middle = std::chrono::high_resolution_clock::now();
    
            
    
            // 중지 시간을 저장합니다.
    
            auto end = std::chrono::high_resolution_clock::now();
    
            
    
            // elapsed ticks를 계산합니다.
    
            int64_t elapsedTicks = std::chrono::duration_cast(end - start).count();
    
            
    
            return elapsedTicks;
    
        }
    
    };
    
    
    
    int main() {
    
        HRTimeStopWatch stopwatch;
    
        stopwatch.start();
    
        // ...
    
        stopwatch.stop();
    
        int64_t elapsedTicks = stopwatch.getElapsedTicks();
    
        std::cout << "Elapsed ticks: " << elapsedTicks << std::endl;
    
        return 0;
    
    }
    
    


    주의할 점은 `clock()` 함수는 CPU 클럭 사이클의 수를 반환하므로, CPU 클럭의 속도가 빠르면 elapsed ticks의 수도 빠르게 증가할 것입니다.

    또한, `std::chrono` 헤더는 C++11부터 지원되므로, C++11 이상의 버전을 사용해야 합니다.

    2025-07-04 15:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,163건 / 91 페이지

검색

게시물 검색