PCBNEW DRC: duration irregularities and regression depending on schematic being open
Description
If schematics aren't open before running DRC, the time it takes to run DRC is substantially longer than if DRC is run with opened project schematics.
Design A: Time to complete DRC with zone refill if schematics for project are closed is (11'30"). If schematics are open before running DRC it is (4'-5').
Duration of DRC without schematics already opened seems inconsistent with separate task durations of rebuilding polygons (3'25") and running DRC without polygon rebuild (1'30'). The running of DRC with schematics open produces expected duration given the individual task times.
Design B: A smaller board has also been tested and gives similar inconsistencies: DRC with unopened schematics (55"), subsequent DRC with open schematics (13"), rebuilding polygons (8").
Design C: The video demo board supplied by kicad is similar: DRC with unopened schematics (38.5"), subsequent DRC with open schematics (6"), rebuilding polygons (2.4").
This timing is consistent whether or not the board is altered or pours change in between running DRC.
In a previous version 6.99.0-1334-g05bca282, the DRC duration remains the same whether or not schematics are open prior to DRC. Design A's DRC with refill all zones is (2') regardless on whether schematics are opened.
Thus the most recent build is also showing a regression in the time it takes to perform zone refill and DRC.
We've previously reported a similar regression for zone fills #12228 (closed) for the same larger board of Design A.
Steps to reproduce
- Open PCBNEW of project.
- Open Design Rules Checker: select, refill all zones before performing DRC, test for parity between PCB and schematic, and report all errors for each track.
- Run DRC, and run a stopwatch.
- Close schematics and pcbnew.
- Open PCBNEW and SCHEMATICS of project.
- Repeat steps 2 and 3 and compare duration recorded of running DRC with schematics already open vs. unopened before DRC.
KiCad Version
Version: 7.99.0-2948-ge1d7d1bca7, release build
Libraries:
wxWidgets 3.2.2
FreeType 2.13.2
HarfBuzz 8.2.1
FontConfig 2.14.2
libcurl/8.3.0 OpenSSL/3.1.3 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.4) libssh2/1.11.0 nghttp2/1.56.0
Platform: Arch Linux, 64 bit, Little endian, wxGTK, X11, KDE, x11
Build Info:
Date: Sep 27 2023 13:13:14
wxWidgets: 3.2.2 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.83.0
OCC: 7.6.3
Curl: 8.3.0
ngspice: 41
Compiler: GCC 13.2.1 with C++ ABI 1018
Build settings:
KICAD_USE_EGL=ON