Removal of binary CSS (BSS)
Christopher Schnick
crschnick at xpipe.io
Sat Dec 20 06:39:21 UTC 2025
I can't say anything about the performance impacts as I have not
measured them in detail, but I can add that at least AtlantaFX and our
projects use the bss feature. So I wouldn't say that this isn't commonly
used.
On 20/12/2025 5:56 AM, Michael Strauß wrote:
> Hi all,
>
> I ran some numbers on the JavaFX binary CSS (BSS) feature. For the
> measurements, I used CssParser to parse modena.css and modena.bss into
> a Stylesheet instance.
>
> On a cold start, parsing takes ~150 ms for the CSS file and ~100 ms
> for the BSS file (about a 50% improvement for BSS). Using JMH to
> benchmark warmed-up performance, I get ~4.4 ms for CSS and ~1.7 ms for
> BSS (about 2.6x faster for BSS).
>
> Those results are a meaningful improvement, but the downside is the
> added complexity: the binary path introduces non-trivial code that has
> to be maintained over time, and it tends to slow down or complicate
> new feature work significantly.
>
> My current hypothesis is that this is largely irrelevant for most
> applications in practice, because modena.css is likely the only
> stylesheet that ever benefits from the binary path. BSS doesn't come
> "for free"; projects have to run css2bin as part of their build, and I
> suspect most applications won't do that. So in the common case, the
> only stylesheet parsed via BSS is Modena, where both modena.css and
> its prebuilt modena.bss ship with the JavaFX runtime.
>
> Maybe in 2010, BSS was a meaningful improvement for mobile devices.
> But today, these gains are dwarfed by overall JavaFX and JVM startup
> time. Removing the binary path would free up development resources for
> features that actually matter for JavaFX applications.
>
> Thoughts?
More information about the openjfx-dev
mailing list