← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Large board speed

 

Hi Tom-

For a particularly large board I'm working on (32 layers, 124k tracks),
current master takes 2.4s per connectivity update (clicks, moving
footprints, enable layers, etc).  With the patch, connectivity search is
10ms per click.

I did a merge with your tom-background-connectivity branch but I needed to
rebase it to master before doing that.  The conflicts were with inserting
the aWorker-CheckInterrupt() conditional in the itemList search.

-S

Am Fr., 25. Mai 2018 um 08:35 Uhr schrieb Tomasz Wlostowski <
tomasz.wlostowski@xxxxxxx>:

> On 25/05/18 05:16, Seth Hillbrand wrote:
> > Here's an updated patch for working with large, complex boards in v5.
> >
> Hi Seth,
>
> Thanks for the patch.
>
> How much faster is it compared to the current master branch?
>
> > Tom, I took your advice and put a light layer over an RTree for the
> > connectivity search.  Since this gets us bounding box collisions, we can
> > do commutative hits by using both items in the collision, eliminating
> > the need to iterate over the full list.
>
> Great!
> >
> > I also did a test merge with your dev tree and had only a couple minor
> > conflicts, so I think our approaches will compliment well.
>
> Did you try to merge it with tom-background-connectivity branch?
>
> Tom
>

Follow ups

References