c++ - 测量网络延迟

标签 c++ performance latency measure

我有一个程序将在两台不同的计算机上运行,​​例如:服务器和客户端。我想测量我的 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/

相关文章:

c++ - 计划任务通信(使用ITask接口(interface))?

c++ - 如何通过另一个程序访问 Windows 服务对象

c++ - 迭代 C++ 映射中的键

C++ 访问远离当前类层次结构的对象

performance - 如何确定 2D 点是否在多边形内?

mysql - Amazon RDS 备份/快照实际上是如何工作的?

c++ - 在 C++ 中从主机获取延迟

c++ - 多线程 - 希望是一个简单的任务

Javascript一次请求多个JS文件

node.js - 为什么 mongodb 对 mongo 的 localhost 实例的查询比对云实例的查询要快得多?