Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-14 Thread John Hendrikx
On Sun, 14 Jan 2024 04:58:35 GMT, John Hendrikx wrote: >> If this method is not used anywhere, why do we need to expose >> `getStyleClassNames()` as new API to replace this one? I'm a bit puzzled by >> that, especially since you're saying that the API shouldn't be used. Why >> create something

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-13 Thread John Hendrikx
On Sun, 14 Jan 2024 04:20:56 GMT, Michael Strauß wrote: >> This is possible, although `List#get` would not perform too well when it is >> implemented for `FixedCapacitySet.OpenAddressed` as the array used as hash >> table in this class can have gaps (so we'd need to iterate to find the >> inde

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-13 Thread Michael Strauß
On Fri, 5 Jan 2024 01:32:04 GMT, John Hendrikx wrote: >> modules/javafx.graphics/src/main/java/javafx/css/SimpleSelector.java line 81: >> >>> 79: * @deprecated for future removal, use {@link >>> #getStyleClassNames()} instead >>> 80: */ >>> 81: public List getStyleClasses() { >>

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-12 Thread John Hendrikx
On Fri, 12 Jan 2024 12:20:22 GMT, Marius Hanl wrote: >> Thanks for having a look, it's good to have some more use cases from other >> applications! The sets are used both for the style classes on `Node`s but >> also the set of style classes in CSS selectors (multiple style classes in >> sele

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-12 Thread Marius Hanl
On Thu, 11 Jan 2024 22:36:58 GMT, John Hendrikx wrote: >> modules/javafx.graphics/src/main/java/com/sun/javafx/css/FixedCapacitySet.java >> line 94: >> >>> 92: return maximumCapacity == 0 ? empty() >>> 93: : maximumCapacity == 1 ? new Single<>() >>> 94: : maxim

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-11 Thread Kevin Rushforth
On Thu, 11 Jan 2024 22:59:33 GMT, Andy Goryachev wrote: >> I can undo the rename so they're not touched. My problem with fixing this >> is that I then also should do it for `CompoundSelector`, which is just >> completely unrelated to the intent of this PR. I'm pretty sure that within >> Java

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-11 Thread Andy Goryachev
On Thu, 11 Jan 2024 22:50:32 GMT, John Hendrikx wrote: >> you are right, this code does not affect performance (I could not hit a >> break point here either). >> still, since you are touching these lines, why not do it right? > > I can undo the rename so they're not touched. My problem with fix

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-11 Thread John Hendrikx
On Mon, 8 Jan 2024 19:24:14 GMT, Andy Goryachev wrote: >> I am confused, and maybe I am missing something. As far as I know, this >> method is not called anywhere. I put a breakpoint in it. JavaFX does not use >> this method anywhere, nor are Selectors ever used as keys in Sets or Maps. >> >>

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-11 Thread John Hendrikx
On Thu, 11 Jan 2024 09:33:09 GMT, Marius Hanl wrote: >> John Hendrikx has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains eight additional >> commit

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-11 Thread Marius Hanl
On Fri, 5 Jan 2024 01:45:56 GMT, John Hendrikx wrote: >> Improves performance of selector matching in the CSS subsystem. This is done >> by using custom set implementation which are highly optimized for the most >> common cases where the number of selectors is small (most commonly 1 or 2). >>

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-08 Thread Andy Goryachev
On Mon, 8 Jan 2024 19:15:31 GMT, John Hendrikx wrote: >> these lines discard about 4.5 bits of information on each step, surely that >> will affect performance, no? > > I am confused, and maybe I am missing something. As far as I know, this > method is not called anywhere. I put a breakpoint in

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-08 Thread John Hendrikx
On Mon, 8 Jan 2024 16:22:42 GMT, Andy Goryachev wrote: >> I agree that it is not nice :) However, changing this seems out of scope >> for this PR as my changes are unrelated to this, and I didn't even touch >> `CompoundSelector`. As selectors are never stored in sets/maps, it is hard >> to j

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-08 Thread Andy Goryachev
On Mon, 8 Jan 2024 16:19:05 GMT, John Hendrikx wrote: >> modules/javafx.graphics/src/main/java/javafx/css/SimpleSelector.java line >> 382: >> >>> 380: hash = 31 * (hash + name.hashCode()); >>> 381: hash = 31 * (hash + selectorStyleClassNames.hashCode()); >>> 382: hash =

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-08 Thread John Hendrikx
On Mon, 8 Jan 2024 16:01:01 GMT, Andy Goryachev wrote: >> John Hendrikx has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains eight additional >> comm

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-08 Thread Andy Goryachev
On Fri, 5 Jan 2024 01:45:56 GMT, John Hendrikx wrote: >> Improves performance of selector matching in the CSS subsystem. This is done >> by using custom set implementation which are highly optimized for the most >> common cases where the number of selectors is small (most commonly 1 or 2). >>

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-04 Thread John Hendrikx
On Thu, 4 Jan 2024 13:38:31 GMT, Nir Lisker wrote: >> John Hendrikx has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains eight additional >> commits

Re: RFR: JDK-8322964 Optimize performance of CSS selector matching [v2]

2024-01-04 Thread John Hendrikx
> Improves performance of selector matching in the CSS subsystem. This is done > by using custom set implementation which are highly optimized for the most > common cases where the number of selectors is small (most commonly 1 or 2). > It also should be more memory efficient for medium sized and