Some time ago I saw a bug report about this on Launchpad.
The report was about 2400 or so part count PCB with 20 or so layers.
(Or was it a 20000 pin count)?
Then I had a look at the Olimexino64 to get some kind of idea of the complexity of such a board, and it was so vastly more complex that I can not imagine ever designing such a board.
Does give me an Idea though:
The Olimexino64 is an open design and the “made with KiCad” on the KiCad website has a link to it’s github repository. You can use this design to compare rendering times.
It’s a 6 layer design with:
- 2147 pads
- 1160 via’s
- 17000 Track Segments (and indeed adding a segment makes it 17001)
- 1977 Nodes (huh, what are those?)
- 459 nets.
The olimexino does not have as many components as your boards, but it has some pretty high pin count BGA’s.
I’ve got a 11 year old dualcore PC with 4Gig of RAM, and a recalculation of all the zone outlines with ‘b’ takes approximately 12 seconds.
Hiding / showing the zones (with Icons on the left) is almost instantaneous.
Switching between filled and outline tracks has a noticable delay of arond 1s.
I’ve been playing around a bit with it. I can easily add and re-route existing tracks.
I’ve pushed upto 20 tracks with the interactive router without noticable lag.
(This does remove all the squiggles of matched impedance tracks though)
Zooming and scrolling is also fast enough to work comfortably with.
It seems my old PC is still adequate for designing a board of this complexity.
I opended the (latest?) Rev_C version of this board:
OLINUXINO/HARDWARE/A64-OLinuXino/A64-OLinuXino_Rev_C/A64-OlinuXino_Rev_C.pro
I’m using:
Application: kicad
Version: 5.1.0+dfsg1-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Platform: Linux 4.19.0-4-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.67.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.64.0
Compiler: Clang 7.0.1 with C++ ABI 1002
Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON
Edit:
I usually use https://www.cpubenchmark.net/high_end_cpus.html for a rough comparison of those thousands of PC processors.
Your Intel Core i7-6700HQ @ 2.60GHz has a Passmark rating of 8132, while my lowly E6550 @ 2.33GHz gets stuck at around 1500.
I do not use “top” enough to even remember if those numbers are bits, bytes of MB, but I can take a screenshot during the 12s it takes to recalculate the zones of the Olimexino64:
%CPU has peaks upto 174% which means KiCad uses both processors of my dualcore for it’s calculations. I only have 4GB of RAM, but it looks like it’s plenty.