Rate counter: Difference between revisions

Major refactoring done to exhibit java.util.stream usage
m (→‎{{header|REXX}}: changed output scaling.)
(Major refactoring done to exhibit java.util.stream usage)
Line 660:
{{trans|JavaScript}}
{{works with|Java|8}}
<lang java>import java.util.function.ConsumerIntConsumer;
import java.util.stream.DoubleStream;
 
import static java.lang.System.nanoTime;
public class RateCounter {
import static java.util.stream.DoubleStream.generate;
 
import static java.lang.System.out;
public static void main(String[] args) {
for (double d : benchmark(10, x -> System.out.print(""), 10))
System.out.println(d);
}
 
public classinterface RateCounter {
static double[] benchmark(int n, Consumer<Integer> f, int arg) {
public static void main(final String[]... argsarguments) {
double[] timings = new double[n];
benchmark(
for (int i = 0; i < n; i++) {
10,
long time = System.nanoTime();
x -> fout.acceptprint(arg"");,
10
timings[i] = System.nanoTime() - time;
})
return timings;.forEach(out::println)
};
}
 
public static DoubleStream benchmark(
final int n,
final IntConsumer consumer,
final int argument
) {
return generate(() -> {
final long time = System.nanoTime();
consumer.accept(argument);
return timings[i] = System.nanoTime() - time;
})
.limit(n)
;
}
}</lang>
 
<pre>7046981431.0
20473987.0
11693205.0
8773081.0
8773020.0
8773101.0
8773040.0
8773102.0
8773072.0
8773060.0</pre>
 
=={{header|JavaScript}}==