Conversation
52087cf to
8d484a9
Compare
8d484a9 to
e26a7c0
Compare
|
Tried this on Fedora 44 and it works well - startup roughly halves and the disk cache is finally being used. I'm running it as my actual shell now. Measured in normal service startup, "Launching config" to "Configuration Loaded", with DankMaterialShell as the config (712 .qml, ~233k LOC) and
Both local binaries are built from the same tree with identical flags, and the packaged build lands on the parent, so nothing here is an artefact of my toolchain. Standalone, outside the service, the same pair gives 2.6s vs 1.35s.
The first run costs 4.5s while the cache is built, then it settles. Ryzen 7 3700U (8 threads), Qt 6.11.2. No crashes, QML errors or unexpected restarts since I switched to it - though that is hours, not weeks. |
As noted in the codebase and #735, the QML disk cache doesnt work with
qs:URLs.This makes
vfs/<id>/qsthe import root and mirrors the full config there. Normal dirs are symlinked directly; dirs with generated files likeqmldir,//@ if, orqml.jsonare mirrored with symlinks plus the generated files. Generated files are only rewritten when their contents change so cache mtimes stay valid.The URL interceptor also canonicalizes config QML/JS/qmldir paths into the mirror so the same document cant be loaded under both
qs:andfile:URLs.If the VFS cant be created it falls back to
qs:like before.On DMS this drops warm launch to "Configuration Loaded" from 1.28s to 0.77s and RSS by ~40MB.
Verify with
QT_LOGGING_RULES=qt.qml.diskcache=true; the second run should be silent.