On Sun, 29 Aug 2021 04:12:22 GMT, Michael Strauß <mstra...@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ß <mstra...@openjdk.org> Committer: Nir Lisker <nlis...@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