[External] : Re: Preload fxml to avoid slow show()

Davide Perini perini.davide at dpsoftware.org
Fri Aug 25 23:16:02 UTC 2023


I tried it, 99% of the heavy lift comes from FXML load.
I have 80Kb of FXML files, nothing particularly big,
I measured the laoding time on a 13900K CPU and it requires 1.8s.

Once loaded, I don't know how this is possible, my apps sucks 100MB more 
RAM but after the first load,
opening/closing the tab pane is much faster.

I sincerely can't understand how a tabpane can suck 100MB od RAM and how 
80Kb of FXML can require almoast 2 seconds to load
on the world fastest consumer CPU (single thread).

I see that there are dozens of similar threads on the internet so this 
should be a known problem
and at this point, I think that I'm out of luck.

Thank you anyway,
Davide


Il 25/08/2023 23:55, Andy Goryachev ha scritto:
>
> Another suggestion might be to load tabs lazily.  I don't think FXML 
> "pre-loading" is possible.
>
> -andy
>
> *From: *Davide Perini <perini.davide at dpsoftware.org>
> *Date: *Friday, August 25, 2023 at 14:31
> *To: *Andy Goryachev <andy.goryachev at oracle.com>, 
> openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
> *Subject: *[External] : Re: Preload fxml to avoid slow show()
>
> My tab pane is very complex with a lot of tabs,
> having an FXML is very welcomed.
>
> Thanks
> Davide
>
> Il 25/08/2023 16:45, Andy Goryachev ha scritto:
>
>     You can try creating the scene graph programmatically, thus
>     avoiding FXML entirely.
>
>     -andy
>
>     *From: *openjfx-dev <openjfx-dev-retn at openjdk.org>
>     <mailto:openjfx-dev-retn at openjdk.org> on behalf of Davide Perini
>     <perini.davide at dpsoftware.org> <mailto:perini.davide at dpsoftware.org>
>     *Date: *Friday, August 25, 2023 at 00:45
>     *To: *openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
>     <mailto:openjfx-dev at openjdk.org>
>     *Subject: *Preload fxml to avoid slow show()
>
>     Hi,
>     I have a tabpane with 15 tabs, every tab has his own controller
>     and it's
>     pretty crowded.
>
>     On a 13900K CPU, show() method requires more than 750ms,
>     this feels laggy...
>
>     After the first show() call, loading the tab pane is much faster...
>
>     Is there a way to "preload" an fxml?
>
>     I tried to show() and hide() it immediately and it seems to help,
>     but what is the best way to do it?
>
>     Thanks
>     Davide
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20230826/8f840a7a/attachment.htm>


More information about the openjfx-dev mailing list