我需要类似套接字的本地 IPC。我在 Windows 上使用了命名管道和重叠 IO,我想将应用程序重写为 boost::ASIO,以便它也可以使用 UNIX 域套接字。
我最近查看了 libevent 库的部分内容,我知道它仅支持 1.4 版本中的 windows 的 socket() 和 select() 。由于重叠 IO 非常有效,因此将其排除在外显然是一个 Not Acceptable 特性,它在版本 2(处于 alpha 中)中得到了解决。另一个次优实现的例子是使用红黑树与优先队列的超时逻辑是 adressed沿线某处。
有没有人对 boost 与 libevent/libev 的性能特征有任何意见。它在某些平台上是否有任何明显的不良特征?我对这个问题的目标是,除非我绝对必须,否则我不想对 ASIO 库进行 pidgeon-hole。我想知道 boost::asio 是否以最佳方式使用最佳操作系统原语。
最佳答案
我对 asio 和我自己的文件读取实现( my blogpost entry )进行了性能测试 - 用两个词 - asio 显示出良好的结果。
关于performance - 有人做过 boost::asio 的性能分析吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799692/