Hi Vasco,

You need to measure where the code is spending time with, otherwise it will
be guessing. Keep that in mind and use any tool you are familiar with that
can get measurements of your execution. I suppose the target here is to
measure the latency of each part of your stacktrace over time.  A profiler
or APM are the best options and we have good open source options for those.

What I would do in your place is attach a profiler on your application
while performing the slow actions on the application, and then check the
profiler data and tackle specific parts of the code. It is likely the
slowness is not on the user interface code, but again, I am guessing now
and guessing is no good.

A profiler that provides flame graphs will be visually easier to find out
where the time is spent. A few suggestions I have:
- Read a bit on http://www.brendangregg.com/flamegraphs.html  and try one
of the tools bellow:
- easy option: https://glowroot.org/ - will be easy enough to configure and
attach and check graphs. Explore it if you're not familiar with profilers
or APMs.
- not-so-easy-but-better:
https://github.com/jvm-profiling-tools/async-profiler - will provide better
resolution, less performance impact on your application at a cost of a bit
less user friendly approach.

When you see a big thing on the flamegraph, it should point to which part
of the application code it is spending time with. Then  you work where the
problem really is. I've been using this approach to find production spots
that are slow with minimum effort.

Good luck on your profiling!

Cheers

Luiz


On Tue, 7 Jul 2020 at 10:15, [email protected] <[email protected]> wrote:

> Hi,
>
> I recently got involved to get an existing Java Swing UI to perform
> better. I have incrementally  been making minor changes till now and
> getting improvements.
> Since we are mostly developing on Linux/OSx boxes we were already aware
> that there is a significant difference in performance between these, where
> Windows would be least responsive.
> At some point we decided to run a crazy experiment and just run our Java
> UI on WSL (Ubuntu), on a Windows machine side by side with the same Java UI
> on plain Windows.
> It turns out that the WSL UI outperforms the Windows UI by miles.
>
> I want to start digging into details as soon as I have time but I was
> wondering if someone has any intuition on what's going on here. I would not
> expect a performance gain by adding an extra level of indirection.
>
> Vasco
>
>
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "mechanical-sympathy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/mechanical-sympathy/369b413d-d101-43cf-bbc0-2f8af887a3d4n%40googlegroups.com
> <https://groups.google.com/d/msgid/mechanical-sympathy/369b413d-d101-43cf-bbc0-2f8af887a3d4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/mechanical-sympathy/CAOjhrJYhwX9uEkH_9Ea-unbXPHyhMRkGgM1_eQ3f_W2hcLXC8w%40mail.gmail.com.

Reply via email to