Integrated: 8273138: BidirectionalBinding fails to observe changes of invalid properties
Michael Strauß
mstrauss at openjdk.java.net
Wed Sep 8 10:59:06 UTC 2021
On Sun, 29 Aug 2021 04:12:22 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:
> This PR fixes a bug that was introduced in #454.
>
> Since this fix might impact the performance considerations in the original PR, I ran a performance benchmark against the previous `ChangeListener`-based implementation, which still shows better performance for the new implementation:
>
>
> @State(Scope.Benchmark)
> public class BindingBenchmark {
> DoubleProperty property1 = new SimpleDoubleProperty();
> DoubleProperty property2 = new SimpleDoubleProperty();
>
> public BindingBenchmark() {
> property2.bindBidirectional(property1);
> }
>
> @Benchmark
> public void benchmark() {
> for (int i = 0; i < 10000000; ++i) {
> property1.set((i % 2 == 0) ? 12345.0 : 54321.0);
> }
> }
> }
>
>
> | Benchmark | Mode | Cnt | Score | Error | Units |
> |-----------|------|-----|-------|-------|--------|
> | ChangeListener | thrpt | 5 | 7.463 | 0.040 | ops/s |
> | InvalidationListener (fixed) | thrpt | 5 | 15.095 | 0.092 | ops/s |
This pull request has now been integrated.
Changeset: 26d6438e
Author: Michael Strauß <mstrauss at openjdk.org>
Committer: Nir Lisker <nlisker at openjdk.org>
URL: https://git.openjdk.java.net/jfx/commit/26d6438ea267d703039facac7dab67175b863b46
Stats: 54 lines in 2 files changed: 54 ins; 0 del; 0 mod
8273138: BidirectionalBinding fails to observe changes of invalid properties
Reviewed-by: kcr, arapte
-------------
PR: https://git.openjdk.java.net/jfx/pull/614
More information about the openjfx-dev
mailing list