gpt4 book ai didi

java - 我的对象列表应该有多大才能保证使用 java 8 的 parallelStream?

转载 作者:行者123 更新时间:2023-11-30 07:45:42 25 4
gpt4 key购买 nike

我有一个来自数据库的对象列表,我想使用 Stream 类的 filter() 方法过滤这个列表。新对象将不断添加到数据库中,因此对象列表可能会变得非常大,可能有数千个对象。我想使用 parallelStream 来加快过滤过程,但我想知道对象列表大约应该有多大才能使 parallelStream 有益。我读过这个线程:Should I always use a parallel stream when possible?在这个线程中,他们同意如果你想从使用并行流中获得任何好处,数据集应该非常大。但是多大才算大呢?假设我的数据库中存储了 200 条记录,我将它们全部检索出来进行过滤,在这种情况下使用并行流是否合理?如果不是,数据集应该有多大? 1000?也许2000?我很想知道。谢谢。

最佳答案

根据 this根据操作的不同,它至少需要 10_000 个,但不需要元素;而不是 N * Q,其中 N = 元素数Q = 每个元素的成本

但这是您反对的一般公式,如果不进行测量,这几乎是不可能的(阅读此处的猜测);适当的测试将证明你是对还是错。

对于一些简单的操作,几乎您实际上不需要并行处理来达到加速的目的。

这里要提到的其他一些事情是,这在很大程度上取决于来源 - 拆分的难易程度。任何基于数组或基于索引的东西都易于拆分(而且速度很快),但是 QueueFile 中的行则不然,因此您可能会浪费更多时间进行拆分而不是计算,当然,除非有足够的元素来涵盖这一点。 足够是您实际衡量的东西。

关于java - 我的对象列表应该有多大才能保证使用 java 8 的 parallelStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51479490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com