rx-java2 - 什么是/如何为并行流动选择“预取”?
问题描述
我在这里阅读并行流文档,它提到:
默认情况下,并行级别设置为可用 CPU 的数量 (Runtime.getRuntime().availableProcessors()),来自顺序源的预取量设置为 Flowable.bufferSize() (128)。两者都可以通过parallel() 的重载来指定。
我仍然不明白这个预取的目的,以及为什么它这么大。我想这意味着它下面的运算符将持有超过 1 个排放量(默认情况下为 128 个)。但是,我无法想象这是一个好主意,因为下游运营商将有效地单线程,直到我们从上游排放超过 128 个?(例如,如果我们有 130,第一个 128 将由一个线程预取,最后 2 个将给第二个。所有其他线程将什么都不做。)。
我猜在更快的流中更小的对象应该有更大的预取,因为在 rx 链之间传递数据的成本会相对更高,所以我们希望预取更高。我不确定在这里选择哪些数字。
解决方案
推荐阅读
- amazon-web-services - 有没有办法使用 AWS 流量镜像功能记录生产服务器流量并在舞台环境中重放相同的流量
- javascript - 使用引导程序 4 选项卡时触发单击不起作用
- kotlin - 如何从具有特定属性的列表中获取“集合集”的计数
- javascript - 删除输入值时不会触发 onChange
- android - 更新 OneSignal 依赖项获取依赖项失败错误
- android - Gson 无法解析日期
- javascript - C# & AJAX - 使用新模型更新视图
- javascript - 使用 postMessage 并从页面获取是否会与 ServiceWorkers 产生竞争条件?
- android - 是否有 API 可以在 Android 上以编程方式配置或启动焦点模式
- powershell - 使用 Powershell 递归删除文件