15

我需要类似套接字的本地 IPC。我在 Windows 上使用了命名管道和重叠 IO,我想重写应用程序以 boost::ASIO 以便它也可以使用 UNIX 域套接字。

我最近查看了 libevent 库的部分内容,我知道它在 1.4 版本中仅支持用于 windows 的 socket() 和 select()。由于重叠 IO 非常有效,因此将其排除在外显然是一个不可接受的特性,该特性在版本 2(处于 alpha 版本)中得到了解决。次优实现的另一个示例是使用红黑树与优先队列来处理超时逻辑,该逻辑在沿线某处被解决。

有没有人对 boost 与 libevent/libev 的性能特征有任何意见。它在某些平台上是否有任何明显的不受欢迎的特征?我对这个问题的目标是,除非我绝对必须,否则我不想对 ASIO 库进行深挖。我想知道 boost::asio 是否以最优化的方式使用最优化的操作系统原语。

4

3 回答 3

9

我对 asio 和我自己的文件读取(我的博文条目)进行了性能测试 - 用两个词 - asio 显示了很好的结果。

于 2009-12-10T13:14:12.507 回答
5

请查看这篇关于 boost::asio 中的锁定问题的帖子,这可能会影响您。

于 2009-12-14T15:12:47.950 回答
3

在我看来Boost.AsioWindows-First大多数其他免费软件库都在Linux-First. 但是Linux下的质量一直很好。由于这个软件得到了 20 名没有参与开发的人的审查。在提问者提出这个问题的时候(2009 年),多线程 Linux 下的速度已经迅速提高:http: //think-async.com/Asio/LinuxPerformanceImprovements

Windows下的速度一直不错。我最大的抱怨是 UDP 套接字的设计,它实现得很差。

于 2012-02-20T15:11:08.210 回答