我有一个程序将在两台不同的计算机上运行,例如:服务器和客户端。我想测量我的 C++ 和 Java 程序中的网络延迟。我认为测量运行时的普通命令(例如 C 语言中的 gettimeofday )对于网络上的运行延迟来说不是很准确。有什么建议吗?
最佳答案
您可以使用 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();
将微秒
替换为纳秒
、毫秒
、秒
以获取不同单位的持续时间。
您也可以使用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;
关于c++ - 测量网络延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43801626/