← Back to team overview

kicad-developers team mailing list archive

Re: Slow performance in pcbnew (PNS/GAL only) on high-fanout nets

 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pads on the same net overlapping should not necessarily be a DRC
error, consider the case of someone trying to make a D-shaped pad by
putting a round one on top of a rectangle. Maybe if they're not part
of the same component?

Here's some quick performance numbers for the ground net on my board.

    processPads took 0.266 sec
Update took 0.377 sec
    processPads took 0.275 sec
Update took 0.383 sec
    processPads took 0.293 sec
Update took 0.403 sec
    processPads took 0.305 sec
Update took 0.413 sec

So looks like processPads is about 3/4 of the total run time of
Update(). Will look into that a little bit and see if there's any
obvious speedups.

On 01/02/16 06:24, Maciej Sumi?ski wrote:
> Apparently the most expensive part is RN_DATA::processPads() that
> does collision checks for pads. It handles cases when tracks do not
> end in the middle of a pad, or when pads overlap (IMHO this should
> be caught by DRC as an error instead, as pointed out at FOSDEM).
> 
> If you do not care about mini ratsnest lines when a track ending
> and a pad center have different coordinates, then you should be
> safe commenting it out (ratsnest_data.cpp:417). There is an idea to
> improve speed here, but it requires more changes and has to be well
> planned first.
> 
> Regards, Orson
> 
> On 01/31/2016 09:27 PM, Andrew Zonenberg wrote:
>> When working on a board with a lot of pads, terminating a trace
>> on a high-fanout net results in a significant (a second or more)
>> hang of the entire UI. I haven't yet attempted to figure out what
>> part of the code this hang is in.
>> 
>> Steps to reproduce:
>> 
>> 1) Open a large board file in pcbnew (I'm testing with 
>> http://thanatos.virtual.drawersteak.com/unlisted/marblewalrus-switch.
kic
>>
>> 
ad_pcb)
>> in GAL mode. The hang does not appear to be reproducible in
>> legacy.
>> 
>> 2) Start drawing a track on a high-fanout net (GND is a good
>> example)
>> 
>> 3) Performance should be normal when the track is started and
>> during drawing, but when you click on a pad to terminate the
>> track pcbnew hangs .
>> 
>> Anybody with PNS experience (Orson, Tomasz, etc) care to
>> investigate thi s?
>> 
>> _______________________________________________ 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
>> 
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJWr6TrAAoJEDRhermzHH18+vYP/1ppPavkFyBE/rLs0TsPQF0+
mv5EPTQsLuiNe+ZY8NWY3PyRn/MdUcUNo1ja4ZwAiEWekqC0Qh/50Rnu+agyZXbI
SuZY0Xn77MmdfCrBZCzco68hVYfSFRuu3LL7V3/j+LAQT0icbE/4Xto5CGpkTzvy
Vsv5sZ13uYB3zRo8OkdMJkYhLCT4tNGcnnPNGFEjT7pqyqCYyKQhHZMT5K6oLHvO
BQpAni8N8EaPIvKNe7pyBkb1UxFqz+ks9iFAIJvFf9oT/+MWu2hhYP5HbjWZJmz0
KU0bs0Xb9M2fcHiMN7u2aNaojFuNiE2sXZo8XlrYfls7wtIFnZ5SLvu4l9G5v/6n
CHkWbfsKgMcG8KsN636pLZCwK/BG0VVMo/wgRCdWyjcLFWw+wmlka+DK3UKIjn3s
0/czStdT0jWC6KvLlGTzaCi5Y24xJX0arJELyxg6MvzvNGXhZ1yKYro6RH04AEaB
r+osJ1nO8n9TFnRuJf28Hiph3fJ60HOEujYpkbYRVDl4mYfvh3/8BC/LAUnTqYCG
+6vXmBUHJTZ9+d6zAiw4rj7K/yHJrix3QJFI8my5sEfxIdj62tgHZtXnpkhXFRRH
m78RcWpbLxIUzOWHhDIC5KPWnwEAiK+830M2yAId1kwCHoz4w0KzBPGcSjioyToR
7Wwpb3Xy0HVrpJt6xAaZ
=OIA0
-----END PGP SIGNATURE-----


Follow ups

References