Verification after an engine install runs on a single thread and takes roughly 30 minutes on hardware that is otherwise idle. The launcher also reports 0 Mbps for Download, Read and Write for the entire duration, which makes a working verify look like a hung one.
Environment
- Unreal Engine 5.8.1-56057345+++UE5+Release-5.8-Windows
- Windows 11 Pro 26200, 20 logical cores, 32 GB RAM, NVMe
- Install path C:\Program Files\Epic Games\UE_5.8, components included engine_source and templates
What happens
The verify is performed by EpicOnlineServicesInstallHelper, not by EpicGamesLauncher. Measured while it ran:
- 36 threads, of which exactly 1 is Running and 35 are in Wait
- 95 to 107 percent CPU, meaning one core saturated on a 20 core machine
- Total system CPU load 34.9 percent, so nothing is competing with it
- Process priority Normal, so it is not being throttled
- Disk reads varying between 1.6 and 31 MB/s, well under what the drive can do
- Roughly 29.5 GB across 250,000 files hashed, which is the whole installed engine and not just the 11.54 GB delta that was downloaded
- Elapsed about 30 minutes, from 21:54 to past 22:23
The bottleneck is hash computation on one thread. The disk is not the limit and neither is the machine. 19 cores sit idle for the entire pass.
Two requests
- Parallelize the hashing across available cores. File level hashing is embarrassingly parallel, and a work queue across even 8 threads should cut this to a few minutes.
- Fix the throughput readout. During the entire verify the launcher shows Download 0 Mbps, Read 0 Mbps, Write 0 Mbps, while the InstallHelper process is measurably reading 1.6 to 31 MB/s the whole time. The UI is instrumenting the launcher’s own pipeline and not the process actually doing the work. This is what makes users think the install is hung and cancel it, which leaves a half patched engine.