← Back to team overview

kicad-developers team mailing list archive

Re: Performance issues in pcbnew

 

On 7/24/2017 7:50 PM, hauptmech wrote:
> 
> I haven't learned enough about the KIWAY to trace the events from pcbnew
> to eeschema yet.
> 
> I'd be curious is this is reproducible in other systems. Easy to test on
> linux using the perf tool https://perf.wiki.kernel.org/index.php/Main_Page
> 
> 1) run kicad, open a pcb and schematic of any size.
> 2) in a terminal run > perf record -g -p $(pidof kicad)
> 3) pan and zoom the pcb continuously for a statistically significant
> time (about 15-30 sec works for me).

This makes even less sense.  Why would the schematic sheet list need to
be rebuilt while panning and zooming a board in pcbnew?  I'm assuming
that this doesn't happen in the legacy canvas.

> 4) CTRL C stop perf
> 5) > perf report
> 
> On a release build SCH_SHEET_LIST() or a sub function shows up at the top.
> 
> 
> 
> On 25/07/17 10:25, Wayne Stambaugh wrote:
>> On 7/24/2017 6:12 PM, hauptmech wrote:
>>> Yeah, it's weird since all I'm doing when collecting perf data is
>>> zooming and panning the pcb, (with eeschema open).  A root page and 11
>>> sub pages at the next level. Roughly 800 components and 2000 wires.
>>>
>>> Probably something somewhere is instantiating a new SCH_SHEET_LIST
>>> (which then has to chew through each and every schematic item to find
>>> the sheets) on every event?
>> This is even more disturbing.  When did we start building the sheet list
>> in pcbnew and more importantly why?
>>
>>>
>>>
>>> On 25/07/17 01:59, Wayne Stambaugh wrote:
>>>> On 7/23/2017 7:36 PM, hauptmech wrote:
>>>>> I'm getting a distracting amount of lag when panning and zooming with
>>>>> GAL. Perf reports TOOL_MANAGER::dispatchInternal and, when eeschema is
>>>>> open, SCH_SHEET_LIST::BuildSheetList, as the main time sinks.
>>>> Given that all BuildSheetList does is create a list of unique sheets in
>>>> a schematic, I find it difficult to believe that you would have that
>>>> many sheets (hierarchical or otherwise) that would cause a performance
>>>> hit.  How many sheets does your design have and how deeply are they
>>>> nested?
>>>>
>>>>> Anyone have any hints for me improve this?
>>>>>
>>>>> In general I'm getting the impression that the design I'm working
>>>>> on is
>>>>> a bit more complex than the developers normally test on. I'll see
>>>>> if my
>>>>> client will allow a sanitized version of this board to go into /demos.
>>>>>
>>>>> -hauptmech
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp


Follow ups

References