cyberduck
cyberduck copied to clipboard
Improve application startup time on Windows
Describe the bug Cyberduck takes 10 seconds to load on my ThinkPad T470p. By comparison, PeaZip and MPC-HC launch in less than 1 second.
To Reproduce Launch Cyberduck.
Expected behavior UI appears much more quickly.
Desktop (please complete the following information): Windows 8.1 Pro x64 Intel i7-7820HQ quad core, 32 GB RAM, Samsung 950 Pro SSD
We are booting up a complete Java VM in addition to the regular startup of .NET Framework and loading several hundred MBs of dependency DLLs. On my machine (i5-7200U, HFS256G39TND-N210A, Windwos 11) it takes 5 seconds for a cold start, and marginally less for a warm start.
Media Player Classic and PeaZip aren't even close to the size of Cyberduck.
As a software developer, I do understand the choices and issues, but there are nonetheless ways to load large apps rapidly. MS Word, MS Excel, MS PowerPoint, Filezilla, and FreeFileSync (to name a few), all load here in less than 3 seconds. On slower machines the Issue is of course bigger.
+1 for this, its hard to know even if I clicked the icon to load it as it so slow
On a Windows on ARM (WoA) machine, this is significantly worse -- it takes about 1 minute for the first window to appear. I suspect this is due to at least 2 reasons:
- lack of a native aarch64 binary (i.e. emulation overhead)
- excessive "pre UI" tasks (see below)
When preparing a log to file a bug, I noticed that the app seems to enumerate much of my local disk!!!! Even though those actions are marked as being in background threads, the initial UI is still not presented. Because this enumeration has other implications, I've opened a separate issue for that: #17160.
Startup log: cyberduck-redacted-full.log
lack of a native aarch64 binary (i.e. emulation overhead)
We are working on it, but due to how the application is built, it's a really heavy task to pull off. I've summarized what we are up to in this discussion
excessive "pre UI" tasks (see below)
We've performed some shallow profiling, but this isn't conclusive yet. This will be looked at, once we finished above mentioned tasks, so we don't tackle dozens of loose ends simultaneously.