xca icon indicating copy to clipboard operation
xca copied to clipboard

XCA 2.5.0 & 2.6.0 very slow

Open JBau32 opened this issue 4 months ago • 12 comments

Most likely same problem as #533

Looking at the process activity, I see that it constantly spams the Windows Registry for Time zones. (QDateTime fromString) Tracing it further it is due to pki_x509::bg_color/pki_base::bg_color which are being called a lot. Temporarily removing that function using a debugger has lead to improved responsiveness and no more constant freezing. There still is some stalls/freezes but not anytime i hover or select a certificate.

OS: Windows 11

JBau32 avatar Mar 04 '24 09:03 JBau32

Found related QT6 bug: https://bugreports.qt.io/browse/QTBUG-120285

JBau32 avatar Mar 04 '24 09:03 JBau32

On my Windows 11, XCA works pretty fast. Even when running inside a virtual machine hosted on an old and slow linux-intel-I5. If QT6 is the culprit, please try the QT-5.15 action-build of XCA-2.6.0

chris2511 avatar Mar 04 '24 10:03 chris2511

It gets significantly slower if you add 200-500 certificates.

And yes, just tried, qt5 variant is unaffected. Qt6 seems to have fixed this already on a later 6.6 patch, xca release uses 6.6.0.

JBau32 avatar Mar 04 '24 10:03 JBau32

Unfortunately the qt5 variant seems overall slower. So manually patching out pki_x509::bg_color/pki_base::bg_color functions on qt6 variant achieves the best results. Nested RootCA + 200 sub certificates are a big slowdown

JBau32 avatar Mar 04 '24 10:03 JBau32

Looks like selecting Don't colorize expired certificates in the options dialog also speeds up XCA without patching. The latest 6.6.2 QT release is still notably slower when colorizing expired certificates.

chris2511 avatar Mar 04 '24 11:03 chris2511

Good to know! That option will be my go-to workaround for now till QT devs have resolved that issue.

JBau32 avatar Mar 04 '24 12:03 JBau32

Using the latest 6.6.3 QT release will resolve this issue. You can have expired certificates colorized without slowing XCA down. The CI&DI currently configuration can't build Windows binaries using QT 6.0.X, so there will be no PRs. You can make Windows binaries by yourself. #533

WRW001 avatar May 05 '24 03:05 WRW001