2017-05-05 8 views
1

서버와 클라이언트와 같은 두 대의 컴퓨터에서 실행되는 프로그램이 있습니다. 내 프로그램에서 C++과 Java로 네트워크를 통해 대기 시간을 측정하고 싶습니다. 런타임에서 측정하는 정상적인 명령 (예 : C에서 gettimeofday)은 네트워크에서 실행 대기 시간에 대해 정확하지 않습니다. 몇개의 충고?네트워크를 통한 대기 시간 측정

+1

'일반 명령을 : 덜 정확한 측정을 제공 할 수 있지만

당신은뿐만 아니라 std::clock를 사용할 수 있나요? 정규 핑 (ping)의 문제점은 무엇입니까? – Pavel

+0

@Pavel이 (가) 내 질문을 편집합니다. gettimeofday와 같은 명령을 말합니다. – PRVS

+0

종단 간 대기 시간 (일방 통행) 또는 왕복 대기 시간 (예 : 핑)을 알고 싶습니까? – Jonas

답변

2

서로 다른 단위로 시간을 얻을 수 nanosecondsmicroseconds, 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; 
+0

답변 해 주셔서 감사합니다 !! – PRVS

+0

이것은 종단 간 대기 시간에 적용됩니까? – PRVS

+0

@PRVS 시계 또는 크로노 타이머를 사용하여 어떤 동작을 수행하는 데 걸리는 시간을 측정 할 수 있습니다. 따라서 서버에 무언가를 보내고 응답을 기다리는 경우 전반적인 지속 시간을 측정 할 수 있습니다.이 시간은 사용자와 서버 간의 왕복 시간을 대략적으로 추정해야합니다. – Pavel