KiCad was fast for a long time, now suddenly got very slow

Just for reference: using my freshly build KICAD 6.0.7 on mint 21 “Vanessa” I loaded the named reference OLINUXINO/HARDWARE/A64-OLinuXino at master · OLIMEX/OLINUXINO · GitHub.
After removing the copper areas it took about 12 seconds to rebuild them again.
(AMD A10-7850K Radeon R7, 12 Compute Cores 4C+8G × 2, 16 GB RAM).

But what’s the “before” 6.0.7 time?

And compared to 6.0.5 it was?

Good questions, but no answers. I tried to downgrade to 6.0.2 (from the repositories), but here once again the pcb-editor crashes, so except for my own builds I cannot give any other reference.
And here I played with some compile options and found one option quite effective:
by selecting “KICAD_SANITIZE_THREADS” I can increase the fill time for the olimex board from 12 seconds to 3 minutes 20 seconds (!!!).

So it may be worth to check the compilation options.

Thanks HOH, I’m just a simple user who knows nothing about programming/compiling, but I hope this will get fixed/sorted out by those who make the programming for KiCad soon. Or later. Until then, at least, I’m back on Eagle again…

Nevertheless, it would be interesting to compare your KICAD installation with the olimex board for the time for copper filling…

@gschelotto: Which mint version do you have installed? Can you test the olimex board?

On my pc the recalculation of the zonesw takes about 8 sec in kicad 6.0.7 and 10 sec in kicad 6.99 but an old build of 21/07/2022

Linux Mint 20.3

I’ve installed Linux Mint 20.3 Una. I’ve also tested the A64 olimex board with KiCad 6.0.7 and the performance is quite good. My 6-layer custom design is more complex in the sense of more area (15x25 cm) more (non-regular) copper zones and much more vias and tracks. In this case the KiCad PCB load time with zones recalculation is about 25 seconds…However in KiCad 6.0.5 it had taken less than 4 seconds.

Just to add more information, I download the board and filled up the zones, it took about 23s on my laptop.

Win10
Intel(R) Core™ i7-8565U CPU @ 1.80GHz
RAM 16,0 GB
GeForce MX250

Application: KiCad (64-bit)

Version: (6.0.6-1-gc8a1c5c707), release build

Libraries:
	wxWidgets 3.1.6
	libcurl/7.82.0-DEV Schannel zlib/1.2.12

Platform: Windows 10 (build 19043), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
	Date: Jun 18 2022 07:32:04
	wxWidgets: 3.1.6 (wchar_t,wx containers)
	Boost: 1.79.0
	OCC: 7.6.0
	Curl: 7.82.0-DEV
	ngspice: 37
	Compiler: Visual C++ 1929 without C++ ABI

Build settings:
	KICAD_USE_OCC=ON
	KICAD_SPICE=ON

EDIT: And it took around 5 seconds on v5, that in general felt snappier …

Application: Pcbnew
Version: (5.1.10)-1, release build
Libraries:
    wxWidgets 3.0.5
    libcurl/7.71.0 OpenSSL/1.1.1g (Schannel) zlib/1.2.11 brotli/1.0.7 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.41.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.73.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.71.0
    Compiler: GCC 10.2.0 with C++ ABI 1014

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Hi, where is that test board available for download, to test to fill the zones also here (in version 6.0.5, 6.0.7, and the latest 6.9.9 nightly build)? I visited gitlab a few days back but could not find anything which looked like a board project.

@HOH wrote a link to it a couple of post back, it is from the company Olimex and it is hosted in their GitHub, but is freely available

I used this tool, to download the folder directly and not the complete repository, here a link:

https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A64-OLinuXino/2. Older hardware revisions/A64-OLinuXino hardware revision E

Thanks for the download link. Just tested to refill the zones for 6 layers here (OSX Catalina) in KiCad version 6.0.5, 6.0.7, and 6.9.9 nightly build – all was fast, no real difference between the KiCad Versions, about 5 seconds fill time each.

1 Like

There seem to be a lot of difficulties reported in this thread. But until there is an example that can be shared with the developers, we won’t be able to address/fix anything. We frequently test with complex boards that we have access to. If your use case is slow, then we would need to see that use case or a simplified version of it to recreate and fix your specific issue.

One good thing I just happened to notice in this was that I was able to open a project in 6.0.5 which was saved in 6.0.7! This is the way you should work about it all the time! – to make it possible to open newer projects also in older software versions (just as Eagle always made it) in case it’s problems/bugs in updates of the software, that way we can all open the projects also in the old software and continue the project until the software updates are fixed!

That’s part of the official version numbering system of KiCad: in x.y.z scheme all versions with same x are file compatible, i.e. the file format doesn’t change.

This has been discussed many times over: the KiCad project doesn’t waste resources on making file formats backwards compatible. IMO the reasoning behind this is sound.

2 Likes

@Seth_h : What are you looking for? Here is your example. And also some hints to check for the origin:
Refill time of the olimex-Board:
6.0.5 6.0.6/7 6.9.99
OSX catalina 5s 5s 5s

Windows10 (5s) 23s

Mint Una (20.3) 8s 10s
4s 25s
Mint Vanessa (21) 12s

This is a first summary of the feedback showing general behavior of the latest release. Since windows and linux updates are strongly impacted by the release update, the OSX flavour seems still running fast.
This could be a first hint to look after some significant changes. It would be highly appreciate to focus on the speed of the program. Like gschelotto I have some own boards, where the fill procedure takes about one minute compared to a handful of seconds in former releases.

And here is another detail:
loading of the board takes about 4s: 2 seconds for read, 2 seconds for drawing
Recalculation of the copper fillings takes about 12 seconds: 10 seconds for recalculation, 2 seconds for redrawing.

I think that this needs
A table to align things
1 Like

“This has been discussed many times over: the KiCad project doesn’t waste resources on making file formats backwards compatible. IMO the reasoning behind this is sound.”

This is important, in case of errors/bugs in updates, to let the works/projects go on…

I will now continue with an old version of Eagle, as it still has the “flow”, doesn’t break up projects because of software updates which makes the “updated” projects impossible to open in the older software versions.

@Seth_h : your right, but I didn’t find a way to do this in this editor. You may advise.

In the meantime I had a look on the sourcecode of the version 5 and 7, especially on the difference. I found some topics worth to discuss but at a first glance there was no obvious reason for the reduction of the speed.

Since I managed to compile KICAD from source, I exercised this for the version 6.0.5 too. The results were quite diffuse:
First of all it can be stated that the loading of the file is faster in 6.0.5 than in 6.0.7. From my review I didn’t notice any change in the loader code, so it seems to deal with internal data structure (same haredware, same WX-Version, same python version, same dynamic libraries: finally the comparison shows the pure impact of the source code)
For the olimex board I compared the refill-times: 12 seconds with 6.0.7, 10 seconds with 6.0.5: no major difference.
For my own board the result for the fill time is quite more impressive: 8 seconds with 6.0.5 against 35 seconds with 6.0.7! Once again a hint on internal data structure handling!
It maybe from interest: Olimex pcb file size: 7,6MB, own pcb file size: 12.8 MB