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
  • From: Genevieve Bastien <gbastien@xxxxxxxxxxxx>
  • Date: Thu, 7 Mar 2019 16:56:27 -0500
  • Autocrypt: addr=gbastien@xxxxxxxxxxxx; prefer-encrypt=mutual; keydata= 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 jvgrBQ==
  • Delivered-to: tracecompass-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/tracecompass-dev>
  • List-help: <mailto:tracecompass-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/tracecompass-dev>, <mailto:tracecompass-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/tracecompass-dev>, <mailto:tracecompass-dev-request@eclipse.org?subject=unsubscribe>
  • Openpgp: preference=signencrypt
  • User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1

Hi Rudolf,

Thanks for looking into this.

Some of us started to look at this, at patch
https://git.eclipse.org/r/#/c/137404/  But some things were not working
in our cases.

You're welcome to contribute your solution! We'll gladly review it.
Here's the contributor guidelines
https://wiki.eclipse.org/Trace_Compass/Contributor_Guidelines

Regards,

Geneviève


On 2019-03-07 8:38 a.m., rreinsberger@xxxxxxxxx wrote:
> 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
> _______________________________________________
> 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