← Back to team overview

kicad-developers team mailing list archive

Re: Performance issues in pcbnew

 


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).
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




Follow ups

References