This is an automated email from the ASF dual-hosted git repository.
gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new 871b9d2 [Benchmarking] Call blackhole#consume() on collections
instead of iterating through each element (#7002)
871b9d2 is described below
commit 871b9d2f4c1d1bcf10794e07f6a9facd90173ee1
Author: Justin Borromeo <[email protected]>
AuthorDate: Wed Feb 20 08:48:06 2019 -0800
[Benchmarking] Call blackhole#consume() on collections instead of iterating
through each element (#7002)
* Replaced iteration with blackhole#consume(the collection)
* Added javadoc on Sequence#toList()
---
.../druid/benchmark/query/GroupByBenchmark.java | 25 +++++-----------------
.../druid/benchmark/query/SearchBenchmark.java | 18 +++-------------
.../druid/benchmark/query/SelectBenchmark.java | 8 ++-----
.../apache/druid/benchmark/query/SqlBenchmark.java | 5 +----
.../druid/benchmark/query/TimeseriesBenchmark.java | 16 ++++----------
.../druid/benchmark/query/TopNBenchmark.java | 13 +++--------
.../query/timecompare/TimeCompareBenchmark.java | 10 ++-------
.../druid/java/util/common/guava/Sequence.java | 4 ++++
8 files changed, 24 insertions(+), 75 deletions(-)
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/GroupByBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/GroupByBenchmark.java
index f96aef6..4fd2c1e 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/GroupByBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/GroupByBenchmark.java
@@ -563,10 +563,7 @@ public class GroupByBenchmark
);
List<Row> results = GroupByBenchmark.runQuery(factory, runner, query);
-
- for (Row result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -581,10 +578,7 @@ public class GroupByBenchmark
);
List<Row> results = GroupByBenchmark.runQuery(factory, runner, query);
-
- for (Row result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -602,10 +596,7 @@ public class GroupByBenchmark
Sequence<Row> queryResult = theRunner.run(QueryPlus.wrap(query), new
HashMap<>());
List<Row> results = queryResult.toList();
-
- for (Row result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -626,10 +617,7 @@ public class GroupByBenchmark
);
Sequence<Row> queryResult = theRunner.run(QueryPlus.wrap(spillingQuery),
new HashMap<>());
List<Row> results = queryResult.toList();
-
- for (Row result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -653,10 +641,7 @@ public class GroupByBenchmark
Sequence<Row> queryResult = theRunner.run(QueryPlus.wrap(query), new
HashMap<>());
List<Row> results = queryResult.toList();
-
- for (Row result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
private List<QueryRunner<Row>> makeMultiRunners()
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/SearchBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/SearchBenchmark.java
index 122914b..2c5617e 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/SearchBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/SearchBenchmark.java
@@ -418,10 +418,7 @@ public class SearchBenchmark
);
List<Result<SearchResultValue>> results =
SearchBenchmark.runQuery(factory, runner, query);
- List<SearchHit> hits = results.get(0).getValue().getValue();
- for (SearchHit hit : hits) {
- blackhole.consume(hit);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -436,10 +433,7 @@ public class SearchBenchmark
);
List<Result<SearchResultValue>> results =
SearchBenchmark.runQuery(factory, runner, query);
- List<SearchHit> hits = results.get(0).getValue().getValue();
- for (SearchHit hit : hits) {
- blackhole.consume(hit);
- }
+ blackhole.consume(results);
}
@@ -472,12 +466,6 @@ public class SearchBenchmark
new HashMap<>()
);
List<Result<SearchResultValue>> results = queryResult.toList();
-
- for (Result<SearchResultValue> result : results) {
- List<SearchHit> hits = result.getValue().getValue();
- for (SearchHit hit : hits) {
- blackhole.consume(hit);
- }
- }
+ blackhole.consume(results);
}
}
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/SelectBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/SelectBenchmark.java
index b802ba0..28bbb1f 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/SelectBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/SelectBenchmark.java
@@ -336,9 +336,7 @@ public class SelectBenchmark
if (result.getEvents().size() == 0) {
done = true;
} else {
- for (EventHolder eh : result.getEvents()) {
- blackhole.consume(eh);
- }
+ blackhole.consume(result);
queryCopy = incrementQueryPagination(queryCopy, result);
}
}
@@ -382,9 +380,7 @@ public class SelectBenchmark
if (result.getEvents().size() == 0) {
done = true;
} else {
- for (EventHolder eh : result.getEvents()) {
- blackhole.consume(eh);
- }
+ blackhole.consume(result);
queryCopy = incrementQueryPagination(queryCopy, result);
}
}
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/SqlBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/SqlBenchmark.java
index 1f51588..529886a 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/SqlBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/SqlBenchmark.java
@@ -173,10 +173,7 @@ public class SqlBenchmark
{
final Sequence<Row> resultSequence =
QueryPlus.wrap(groupByQuery).run(walker, new HashMap<>());
final List<Row> resultList = resultSequence.toList();
-
- for (Row row : resultList) {
- blackhole.consume(row);
- }
+ blackhole.consume(resultList);
}
@Benchmark
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/TimeseriesBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/TimeseriesBenchmark.java
index 5c58c94..ac413c4 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/TimeseriesBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/TimeseriesBenchmark.java
@@ -342,9 +342,7 @@ public class TimeseriesBenchmark
);
List<Result<TimeseriesResultValue>> results =
TimeseriesBenchmark.runQuery(factory, runner, query);
- for (Result<TimeseriesResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -359,9 +357,7 @@ public class TimeseriesBenchmark
);
List<Result<TimeseriesResultValue>> results =
TimeseriesBenchmark.runQuery(factory, runner, query);
- for (Result<TimeseriesResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -379,9 +375,7 @@ public class TimeseriesBenchmark
Query filteredQuery = query.withDimFilter(filter);
List<Result<TimeseriesResultValue>> results =
TimeseriesBenchmark.runQuery(factory, runner, filteredQuery);
- for (Result<TimeseriesResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -414,8 +408,6 @@ public class TimeseriesBenchmark
);
List<Result<TimeseriesResultValue>> results = queryResult.toList();
- for (Result<TimeseriesResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
}
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/TopNBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/TopNBenchmark.java
index 566ebe3..fee4d42 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/TopNBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/TopNBenchmark.java
@@ -326,9 +326,7 @@ public class TopNBenchmark
);
List<Result<TopNResultValue>> results = TopNBenchmark.runQuery(factory,
runner, query);
- for (Result<TopNResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -343,9 +341,7 @@ public class TopNBenchmark
);
List<Result<TopNResultValue>> results = TopNBenchmark.runQuery(factory,
runner, query);
- for (Result<TopNResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@Benchmark
@@ -377,9 +373,6 @@ public class TopNBenchmark
new HashMap<>()
);
List<Result<TopNResultValue>> results = queryResult.toList();
-
- for (Result<TopNResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
}
diff --git
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/timecompare/TimeCompareBenchmark.java
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/timecompare/TimeCompareBenchmark.java
index 85ef600..e50dde0 100644
---
a/benchmarks/src/main/java/org/apache/druid/benchmark/query/timecompare/TimeCompareBenchmark.java
+++
b/benchmarks/src/main/java/org/apache/druid/benchmark/query/timecompare/TimeCompareBenchmark.java
@@ -422,10 +422,7 @@ public class TimeCompareBenchmark
{
Sequence<Result<TopNResultValue>> queryResult =
topNRunner.run(QueryPlus.wrap(topNQuery), new HashMap<>());
List<Result<TopNResultValue>> results = queryResult.toList();
-
- for (Result<TopNResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
@@ -439,9 +436,6 @@ public class TimeCompareBenchmark
new HashMap<>()
);
List<Result<TimeseriesResultValue>> results = queryResult.toList();
-
- for (Result<TimeseriesResultValue> result : results) {
- blackhole.consume(result);
- }
+ blackhole.consume(results);
}
}
diff --git
a/core/src/main/java/org/apache/druid/java/util/common/guava/Sequence.java
b/core/src/main/java/org/apache/druid/java/util/common/guava/Sequence.java
index 8e04f9f..c5eded2 100644
--- a/core/src/main/java/org/apache/druid/java/util/common/guava/Sequence.java
+++ b/core/src/main/java/org/apache/druid/java/util/common/guava/Sequence.java
@@ -71,6 +71,10 @@ public interface Sequence<T>
return new MappedSequence<>(this, mapper);
}
+ /**
+ * Several benchmarks rely on this method to eagerly accumulate Sequences to
ArrayLists. e.g.
+ * GroupByBenchmark.
+ */
default List<T> toList()
{
return accumulate(new ArrayList<>(), Accumulators.list());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]