← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Large board speed

 

On 25/05/18 18:53, Seth Hillbrand wrote:
> 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. 
> 
Hi Seth,

I don't plan to use the background connectivity branch before 6.0 (as
it's incompatible with the legacy canvas). Your R-Tree patch though
looks very nice. I vote for merging it if Wayne's OK.

Tom

> -S
> 
> Am Fr., 25. Mai 2018 um 08:35 Uhr schrieb Tomasz Wlostowski
> <tomasz.wlostowski@xxxxxxx <mailto: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