서버와 클라이언트와 같은 두 대의 컴퓨터에서 실행되는 프로그램이 있습니다. 내 프로그램에서 C++과 Java로 네트워크를 통해 대기 시간을 측정하고 싶습니다. 런타임에서 측정하는 정상적인 명령 (예 : C에서 gettimeofday
)은 네트워크에서 실행 대기 시간에 대해 정확하지 않습니다. 몇개의 충고?네트워크를 통한 대기 시간 측정
1
A
답변
2
서로 다른 단위로 시간을 얻을 수 nanoseconds
와 microseconds
, milliseconds
, seconds
를 교체 std::chrono
#include <chrono>
auto timeStart = std::chrono::high_resolution_clock::now();
// do something... wait for result...
auto timeEnd = std::chrono::high_resolution_clock::now();
long long duration = std::chrono::duration_cast<std::chrono::microseconds>(timeEnd - timeStart).count();
으로 정확한 시간을 측정 할 수 있습니다. 당신이 언급하는 것 - runtime`을 측정하는
#include <ctime>
std::clock_t timeStart = std::clock();
// do something... wait for result...
std::clock_t timeEnd = std::clock();
double durationMs = 1000.0 * (timeEnd-timeStart)/CLOCKS_PER_SEC;
'일반 명령을 : 덜 정확한 측정을 제공 할 수 있지만
당신은뿐만 아니라 std::clock를 사용할 수 있나요? 정규 핑 (ping)의 문제점은 무엇입니까? – Pavel
@Pavel이 (가) 내 질문을 편집합니다. gettimeofday와 같은 명령을 말합니다. – PRVS
종단 간 대기 시간 (일방 통행) 또는 왕복 대기 시간 (예 : 핑)을 알고 싶습니까? – Jonas