Slow performance with layout on Win 11

Hi,
I’m new with KiCad and this is my first experience.
I converted our board (412mm x 265mm, 14 layer) from Eagel to KiCad 7. The conversion was done without any problems.
If I want to enable or disable a single layer I have to wait about 20s to complet the operation. During this time I can’t do anything.
Is this a normal behavior? My system is a Dell Precision Notebook with Core i7 and 32G RAM.
Thank you for your help.
BR
martin

That is a serious PCB. The most complicated PCB I experimented with is the Olinuxino A64 (Open Source, available on Gitlab) It is a 90*60mm 6 layer PCB. Enabling or disabling a layer takes about half a second (or less?) on my Ryzen 5600G. But when I extrapolate that, I get:

412 * 265 * 14 / 90 / 60 / 6 * 0.5 = 23.6s

That is close to what you see, but the 0.5s is a wild guess, and the extrapolation is also sucked out of my thumb.

That i7 does not mean much without knowing which generation it is. Intel has been making those for 15 years or thereabouts. But I guess that older generations do not have 32G RAM.

At the moment I am aware of two things that can cause performance problems:

  • Generation of hatched zones is quite slow.
  • Imported complex graphics on a layer can be very slow when it is in a zone. (A single image can ruin performance)

You give very little info about your project. You can examine whether this problem persists when deleting parts of the PCB on a copy of your project. I am sure that several people (including myself) are curious about this board, and what causes the performance problems and want to have a look at this board, but I am guessing that the project is too big to upload on this forum, and I assume you also do not want to make it public.

For further help, there are two other things you can do. You can create a confidential topic on gitlab. This will also require an upload of the project, but very few people are able to see confidential topics on gitlab.

Another option is to contact https://www.kipro-pcb.com/ and ask them what they can do for you. They do commercial support for KiCad (thus non-free) but are also very interested in anything that causes performance issues in KiCad.

The Laptop is a Core i7 1355U.

I can add a screenshot of the top layer:

I removed all layer except the following:

image

The time for enabling / disabling layers has not changed.

In preferences → display options switch rendering to Fallback graphics. Does that speed up layer switching? If it does then there is an issue with your graphics drivers, if they are up to date then you can report this on kicad. Your cpu is fairly recent but intel is infamous for shitty drivers.

Also if your laptop has a dedicated graphics card try switching kicad to use that (how to do it depends on manufacturer and software).

Core i7-1355u has a passmark rating of 15348 and is indeed a fairly decent processor. PassMark Intel vs AMD CPU Benchmarks - High End

Your PCB is quite big, but it does not appear to be very dense and some problem with a graphics driver (or other hardware / software / malware?) could be the problem.

This “boatcontrol” is the largest PCB I know of in KiCad. (It’s bigger then yours, but only has 4 copper layers)

You can use it for performance comparison. Initial loading of the PCB takes around 10 seconds. Panning and zooming is “instant” on my Ryzen 5600G. Enabling or disabling a layer does have a noticeable lag, but it is quite short, I guess around 1s. The slowest operation in KiCad is regenerating the internal zone geometry by depressing the b shortcut key, and this takes 11seconds for this PCB. CPU load does not go above 18% during this time. There seems to be room for improvement, but at least it uses more then one thread. (Ryzen 5600G is 6-core 12 Threads and a single thread tops out at 8% CPU load.) I guess that generating zone geometry is also independent of graphics performance / drivers, but these modern computers are too close to magic for mere mortals to fully understand such things.

Multi threaded applications are difficult to develop, but Single core performance has only seen very moderate increments in the last 15 years, and multi threaded applications are the only way to get a real performance boost. I am guessing that KiCad uses a separate thread for each layer (that is the simplest to program) If that is true, you should see a better performance on your 14-layer PCB.

Confirm. Very slow. KiCad version 7.x.

I changed it to no aliasing, but the calculation time is the same.

Again: Try the boatcontrol project. If your performance is similar to what I have, then your issue is probably related to your big 14 layer PCB. If boatcontrol is also slow on your PC, then it’s not related to your project.

If the slowness problems is mainly with enabling/disabling (showing/hiding) layers, the problem is the bug #15098 – unfortunately this may be tricky to solve, as the slowness was caused by fixing another problem (items not correctly updating when showing/hiding the layers)

If the slowness appears in other operations, it could be a different problem.

I tried the boatcontrol project and couldn’t find any problems.

1 Like

A Last August I was looking at:

and performance was truly abysmal. Reading that thread, it took two minutes to fill zones. After some detective work I found:

Examining the F.Cu shows “Kevin Santo Cappuccio”. If that object is removed, zone filling on the freshly loaded Rev. 3 board is back to 5 seconds.

Back then I was thinking about creating a bug report for this, but it got buried under all the noise in my head.

The text string that caused the problem was a high vector count polygon. It is quite possible that the eagle to KiCad conversion generates similar things.

Can you tell us the number of lines in the the pcb file or at least the file size. This can give us clues to possible issues like excessive segments in a graphics outline

For comparison, the boatcontrol pcb file is 8.7 MB and 91535 lines

The file size of the layout is 122,65MByte and 3.334.108 lines and 2553 signal nets.

image

That’s 1300 lines per net, which is ridiculously high. Maybe curved tracks broken up into tiny segments or rounded pads treated as polygons?

Sorry, which lines do you mean? 3334108 code lines of the kicad pcb file.
How can I determine the correct number?

A more common reason is “pad and zone painting”, in which pads and zones are made from a hole lot of horizontal or vertical lines. I do not know whether eagle did that though. And without access to the PCB project itself, diagnosis is cumbersome though a medium such as this forum.

3334108 / 2553 = 1305.95

What you could do is make a copy and crop out a 25x25mm sample from somewhere with zones etc and delete everything else. This small sample isn’t going to leak your secrets, so you could post it and should reveal what has happened

If you are able to share this board with the development team via a confidential issue on GitLab, we can look and see more details of what is causing the slowdown.

1 Like

3 posts were split to a new topic: Slow performance with eeschema

Sorry our board is under NDA