Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tracecompass-dev] Performance of CPU usage analyses with many threads involved

Hello Genevieve,

We now did some debugging ourselves regarding the CPU usage check box tree and the rendering performance.

As it seems the pure graph rendering for the >1500 threads is done in about 20s (without any check box handling) - which is acceptable.

With our improvements on the check box handling (in TriStateFilteredCheckboxTree.java) we are down to 40s from selecting all 1500 threads (i.e. check boxes) to finishing the graph rendering. We would be ready to submit these improvements but as we are no TC committers (yet) how can we best do that?

However, although this is a huge improvement from the application previously becoming unresponsive after 30 minutes, even the remaining check box handling overhead is somewhat unsatisfyingly high and we should consider further optimizations.

Best Regards,
Rudolf


Am 2019-02-21 18:43, schrieb Genevieve Bastien:
Hi Rudolf,


There was no benchmark for the CPU Usage analysis, so I made one that
queries the backend. For manyThreads, it takes 2.15 minutes to query
10 times the tree on the left and the CPU usage for all threads. There
was an easy performance fix, got that down to 1.5 minutes for 10x the
full queries (so ~9s for one query of both tree and graph data). So
the problem is definitely not the backend (the algorithm is not
linear).

After doing some more profiling according to your comments, one would
think that if the checkboxes are not visible, they would not be
rendered, but that is apparently not true, it is still checking the
checked state of each box, no matter if it's visible or not. And that
still takes forever. Somebody in the team is looking into this.
Hopefully we'll "fix" that pretty soon.


Thanks and don't hesitate if you notice any other such performance hit!

Regards,

Geneviève


On 2019-02-21 4:36 a.m., rreinsberger@xxxxxxxxx wrote:
Hello Geneviève,

I tried the same with a collapsed tree so that only the topmost check box remains. So, selecting this one implicitly selects all 1535 collapsed threads. Although there is nothing apparently to render in this case (in terms of individual thread checkboxes) the result is the same as with the expanded tree view.

However, trying to render just individual threads from this example takes between 5s to 7s on my machine (which is well aged but with an i7 core after all). That would roughly mean about 2 hours to render all 1535 threads. So, I am not that sure that it's definitely the GUI check boxes causing this run time?

As the many-threads example I use is from the test repository do you know if there is any test protocol for this test case telling about the expected results and run time?

Regards,
Rudolf



Am 2019-02-18 16:44, schrieb Genevieve Bastien:
Hi Rudolf,

Wow, reading this bug report brings back memories... Claudette nodes...

Anyway, indeed, on the backend side, there should be no performance
problems anymore, and from doing a bit of sampling after reading your
mail, the performance problem you're experience comes from the
frontend: The UI spends most of its time rendering checkboxes of the
tree items... Because there's a lot of items in this tree, yet only a
few of them are visible. I think the 'tree' widget of those views
should be more lazy and display only the visible items instead of all
of them. There should be a bug for that. Especially that we have more
and more of that type of views with a lot of items...

Thanks for bringing this up,

Regards,

Geneviève


On 2019-02-18 8:05 a.m., rreinsberger@xxxxxxxxx wrote:
Hello,

Evaluating the CPU usage analyses and view I used sample/test data from here:

https://github.com/tracecompass/tracecompass-test-traces/tree/master/ctf/src/main/resources/many-threads

… and from here (see file attachment in the report):

https://bugs.eclipse.org/bugs/show_bug.cgi?id=460261

Trying to update the CPU usage graph with all threads selected the analyses took a very long time (>30 min) until Trace Compass (v4.2) was eventually rendered unresponsive.

It seems that in the bug report referred to above this problem (or at least parts of it) were addressed. However, I am not sure what performance and results are to be expected for this test traces. Is the CPU usage supposed to work and produce results with this trace data in TC version 4.2?

Regards,
Rudolf
_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/tracecompass-dev
_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/tracecompass-dev


Back to the top