0

我正在尝试在我的高性能 C++ 应用程序中间的服务器上 ping 一个 URL,其中每一毫秒都是至关重要的。我不关心查询的返回数据...我只需要向特定的 URL 发送 HTTP 请求(以使其加载),并且我正在尝试找到最有效的非阻塞方法来实现这一点。

我的应用程序使用 Boost::ASIO,但执行此操作的大多数方法似乎每次都涉及构建和拆除套接字(不幸的是,这可能是必要的),但我希望有一个基本的 C/C++ 套接字单线器会'不会导致任何开销、内存泄漏、阻塞等。只需快速打开一个套接字,关闭 HTTP 请求,然后继续。

这需要每秒发生数千次,因此套接字和开销很重要(不想淹没操作系统)。

有人对实现此目标的最有效方法有任何建议吗?

非常感谢!

4

1 回答 1

1

每秒发送数千条通知,我无法想象为每个通知打开一个套接字连接。由于开销,这可能效率太低。因此,正如凯西建议的那样,尝试使用专用连接。

由于听起来您在主线程上进行了大量处理,因此您可能会考虑为套接字工作创建一个工作线程。您可能需要使用线程同步对象(如互斥锁或临界区)来单线程代码 - 至少在从主线程更新容器(可能是队列)并从工作线程读取它时。

于 2013-06-19T22:43:40.730 回答