lukecwik opened a new pull request, #24388:
URL: https://github.com/apache/beam/pull/24388
The existing implementation only sampled the key/accumulator size but always
measured the size of the window. Note the 50-75% improvement for non-globally
windowed accumulation.
There are also some trivial reductions hashCode/equality since we know that
certain types are always non-null.
Before
```
Benchmark (distribution)
(globallyWindowed) Mode Cnt Score Error Units
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniform
true thrpt 15 12.775 ± 0.640 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniform
false thrpt 15 6.047 ± 0.535 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine normal
true thrpt 15 7.148 ± 0.473 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine normal
false thrpt 15 4.233 ± 0.239 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine hotKey
true thrpt 15 13.894 ± 0.649 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine hotKey
false thrp
t 15 6.708 ± 0.375 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniqueKeys
true thrpt 15 2.286 ± 0.115 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniqueKeys
false thrpt 15 1.765 ± 0.064 ops/s
```
After
```
Benchmark (distribution)
(globallyWindowed) Mode Cnt Score Error Units
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniform
true thrpt 15 13.399 ± 0.241 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniform
false thrpt 15 11.522 ± 1.120 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine normal
true thrpt 15 7.186 ± 0.123 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine normal
false thrpt 15 6.578 ± 0.161 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine hotKey
true thrpt 15 13.467 ± 0.562 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine hotKey
false thrp
t 15 9.704 ± 0.866 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniqueKeys
true thrpt 15 2.264 ± 0.110 ops/s
PrecombineGroupingTableBenchmark.sumIntegerBinaryCombine uniqueKeys
false thrpt 15 2.255 ± 0.190 ops/s
```
------------------------
Thank you for your contribution! Follow this checklist to help us
incorporate your contribution quickly and easily:
- [ ] [**Choose
reviewer(s)**](https://beam.apache.org/contribute/#make-your-change) and
mention them in a comment (`R: @username`).
- [ ] Mention the appropriate issue in your description (for example:
`addresses #123`), if applicable. This will automatically add a link to the
pull request in the issue. If you would like the issue to automatically close
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
- [ ] Update `CHANGES.md` with noteworthy changes.
- [ ] If this contribution is large, please file an Apache [Individual
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
See the [Contributor Guide](https://beam.apache.org/contribute) for more
tips on [how to make review process
smoother](https://beam.apache.org/contribute/get-started-contributing/#make-the-reviewers-job-easier).
To check the build health, please visit
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
GitHub Actions Tests Status (on master branch)
------------------------------------------------------------------------------------------------
[](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more
information about GitHub Actions CI.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]