소연의_개발일지

 

 

chrono 헤더 사용하여  c++ 함수 측정 시간을 측정하기

 

다음은 간단한 예제이다.

#include <iostream>
#include <chrono>  // 시간 관련 기능을 포함하는 헤더

void someFunction() {
    // 이 함수에서는 1초 동안 멈춥니다. 실제 코드에서는 당신의 함수 로직을 넣어주세요.
    std::this_thread::sleep_for(std::chrono::seconds(1));
}

int main() {
    // 시작 시간 측정
    auto start = std::chrono::high_resolution_clock::now();

    // 함수 실행
    someFunction();

    // 종료 시간 측정
    auto stop = std::chrono::high_resolution_clock::now();

    // 경과 시간 계산
    auto duration = std::chrono::duration_cast<std::chrono::microseconds>(stop - start);

    std::cout << "Time taken by function: " << duration.count() << " microseconds" << std::endl;

    return 0;
}

 

using namespce 사용하여 코드 줄이기

 

using namespace std;를 사용하면 std:: 접두사 없이 표준 라이브러리의 이름을 직접 사용할 수 있다. (using namespace chrono도 가능하다고 알고있음) 

하지만 대규모 프로젝트나 라이브러리를 작성할 때는 이름 충돌의 위험이 있기 때문에 권장되지 않는다.

때문에 작은 프로그램이나 간단한 예제에서는 코드의 가독성을 높이기 위해 사용될 수 있다.

다음은 using namespace std;와 using namespace chrono를 사용하여 코드를 간소화한 예제이다.

#include <iostream>
#include <chrono>
#include <thread>

using namespace std;    // std 네임스페이스 사용
using namespace chrono; // chrono 네임스페이스 사용

void someFunction() {
    this_thread::sleep_for(seconds(1)); // chrono:: 접두사 없이 seconds 사용
}

int main() {
    auto start = high_resolution_clock::now(); // chrono:: 접두사 없이 high_resolution_clock 사용

    someFunction();

    auto stop = high_resolution_clock::now();
    auto duration = duration_cast<microseconds>(stop - start); // chrono:: 접두사 없이 duration_cast와 microseconds 사용

    cout << "Time taken by function: " << duration.count() << " microseconds" << endl;

    return 0;
}

 

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!