kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #35983
Re: [PATCH] Large board speed
On 5/28/2018 11:21 AM, Tomasz Wlostowski wrote:
> 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.
What's our risk exposure here? I didn't get a chance to look at the
patch over the weekend. If the risk is low, then I'm OK with merging it
but we need to have high confidence. Otherwise, we should push it off
to the first v5 point release so we can get some additional testing.
>
> 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