You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alex Herbert (Jira)" <ji...@apache.org> on 2023/10/06 13:00:00 UTC
[jira] [Commented] (STATISTICS-75) Create JMH benchmarks for statistic initialization
[ https://issues.apache.org/jira/browse/STATISTICS-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17772561#comment-17772561 ]
Alex Herbert commented on STATISTICS-75:
----------------------------------------
I created a simple benchmark to initialise a statistic from an input array. The statistic was a simple sum of values. Data were random values in [0, 1). Methods tested:
{code:java}
double[] data = ...
DoubleConsumer s = ...
// forLoop
for (int i = 0; i < data.length; i++) {
s.accept(data[i]);
}
// forEachLoop
for (final double x : data) {
s.accept(x);
}
// streamForEach
Arrays.stream(data).forEach(s::accept);
{code}
Results (Java version: 11.0.20.1):
|length|forEachLoop|forLoop|streamForEach|
|0|2.44|2.46|16.37|
|1|4.17|4.18|17.12|
|10|8.00|7.83|21.51|
|100|59.42|59.80|89.67|
|1000|790.26|790.36|814.05|
|10000|8056.13|8102.35|8112.76|
h2. Conclusion
Creation of a stream is not as fast on small input arrays. On arrays above size 1000 the difference is negligible.
> Create JMH benchmarks for statistic initialization
> --------------------------------------------------
>
> Key: STATISTICS-75
> URL: https://issues.apache.org/jira/browse/STATISTICS-75
> Project: Commons Statistics
> Issue Type: Sub-task
> Components: descriptive
> Reporter: Anirudh Joshi
> Priority: Minor
> Labels: gsoc, gsoc2023
>
> Create JMH benchmarks for statistic initialization comparing Arrays.stream to a simple for loop.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)