小编Mat*_*ias的帖子

通过链式操作快速降低流吞吐量?

我期望简单的中间流操作,例如limit(),开销很小.但这些示例之间的吞吐量差异实际上很重要:

final long MAX = 5_000_000_000L;

LongStream.rangeClosed(0, MAX)
          .count();
// throughput: 1.7 bn values/second


LongStream.rangeClosed(0, MAX)
          .limit(MAX)
          .count();
// throughput: 780m values/second

LongStream.rangeClosed(0, MAX)
          .limit(MAX)
          .limit(MAX)
          .count();
// throughput: 130m values/second

LongStream.rangeClosed(0, MAX)
          .limit(MAX)
          .limit(MAX)
          .limit(MAX)
          .count();
// throughput: 65m values/second
Run Code Online (Sandbox Code Playgroud)

我很好奇:快速降低吞吐量的原因是什么?它是链式流操作或我的测试设置的一致模式吗?(到目前为止我没有使用JMH,只是用秒表设置快速实验)

java throughput java-stream

5
推荐指数
1
解决办法
69
查看次数

标签 统计

java ×1

java-stream ×1

throughput ×1