我正在寻找有关使用RxCpp库处理事件流的本机延迟的信息,即处理一条简单消息(例如,指向对象的指针)的库开销是多少?从某个来源发布的事件到由一个琐碎(什么都不做)的观察者完成处理需要多少时间?
我做了很多网络搜索,但似乎无法找到任何基准。我不需要确切的数字,只要规模就足够了:是毫秒、微秒还是数百纳秒?
我正在寻找有关使用RxCpp库处理事件流的本机延迟的信息,即处理一条简单消息(例如,指向对象的指针)的库开销是多少?从某个来源发布的事件到由一个琐碎(什么都不做)的观察者完成处理需要多少时间?
我做了很多网络搜索,但似乎无法找到任何基准。我不需要确切的数字,只要规模就足够了:是毫秒、微秒还是数百纳秒?
rxcpp 主要是语法糖,但不仅如此。它是一个通过应用于数据的一系列操作来构建流的框架。作为 rxcpp 的贡献者,我可以说,在最近几次提交之后,性能应该会好一些(由于消除了对原始对象的大量复制/移动调用)。无论如何,在内部它只是将对象传递给函数,将获取的值发送到下一个块等等。
无论如何,内部逻辑对于大多数运算符(例如,映射或过滤器)来说非常简单,它只不过是通过通用引用获取值,传递给用户定义的 lambda 并接下来传递值。因此,您只能通过传递值等来承担开销。
如果您对每个操作员的特定数量的副本感兴趣,您可以检查 rxcpp 中的单元测试,我已经为每个操作员添加了测试。