测量网络延迟

时间:2017-05-05 09:41:38

标签: c++ performance latency measure

我有一个程序可以在两台不同的计算机上运行,​​例如:服务器和客户端。我想用C ++和Java来测量程序中网络的延迟。测量运行时的常规命令(例如C中的gettimeofday)我认为对于网络上的运行延迟不是很准确。一些建议?

1 个答案:

答案 0 :(得分:2)

您可以使用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();

microseconds替换为nanosecondsmillisecondsseconds以获得不同单元的持续时间。

您也可以使用std::clock,但它可能会提供不太准确的测量结果:

#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;