java - 测量完成各个流步骤的时间?

标签 java time java-stream

是否有一个库可以测量 Java Stream 步骤?

如“使用此流时,在该过滤器中花费 X 时间,在该映射中花费 Y 时间,等等......”?

或者我需要稍微修改一下吗?

最佳答案

根据定义,步骤之间没有“间隔”时间。您定义的方法链仅定义要采取的步骤(方法构建包含这些步骤的内部结构)。

一旦您调用终端运算符(operator),所有步骤都会按不确定的顺序执行。如果您从不调用终端运算符(operator),则也不会执行任何步骤。

我所说的不确定顺序是这样的:

intstream.peek(operation1).peek(operation2).sum();

您不知道是否调用了 operation1,然后调用了 operation2,然后再次调用了 operation1,或者是否调用了 operation1 code> 被调用了很多次,然后 operation2 被调用了很多次,或者其他什么。 (我希望我的说法是正确的。[编辑] correct)这可能取决于虚拟机的实现来权衡存储与时间复杂度。

您能做的最好的事情就是测量每个操作所花费的时间,因为您可以完全控制每个操作。流引擎花费的时间很难衡量。但是,请注意,当您执行此操作时,您将违反流 API 的操作应无副作用的要求。因此,不要在生产代码中使用它。

关于java - 测量完成各个流步骤的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58181342/

相关文章:

java html 到 xml saxbuilder jdom2

java - "import au.com.bytecode.opencsv.CSVReader"错误

java - CSV 阅读器的危险 - Java

java - 将字符串列表转换为包含这些字符串作为字段的对象列表

java - 仅在满足特定条件时应用减少

java-8 - Java 8 流 : conditionals to avoid repetition?

java - 将字段传递给自定义反序列化器类 Jackson

javascript - 如何在java脚本中检查时间是否小于或等于特定小时

java - 在 Parse 后端查找当前时间和上次更新时间之间的差异

Javascript:短时间表示法