Describe the bug
Selecting Open Data Folder from the QuickLook tray menu can take several
seconds before File Explorer displays the folder and responds to input.
The current handler starts explorer.exe explicitly. In a traced run, this
created a temporary Explorer stub process, which forwarded the request to a
separate Explorer factory process. ShellExecuteExW occupied about 694 ms and
returned 719 ms after the click; the destination factory process did not start
until 1047 ms after the click. QuickLook itself used only about 31 ms of
UI-thread sampled CPU during the 3.65-second operation, so the delay was not a
CPU loop in QuickLook.
To Reproduce
- Run a Release build from commit
6928135a71531ac7873eb7d676f3ed7c4731d2af.
- Open QuickLook's tray menu.
- Select Open Data Folder.
- Measure from the menu-item click until File Explorer is visible, resolves
to QuickLook's data folder, and responds to input.
Measured results
Five warm runs of the current implementation completed in:
3312, 2740, 2423, 2883, 2395 ms (median 2740 ms)
A candidate change that asks the existing Windows shell to explore the folder
avoids the explicit child explorer.exe stub/factory launch and forwarding
path. It completed the same correctness checks in:
468, 598, 503, 456, 509 ms (median 503 ms)
That is a 2237 ms (81.6%) median reduction. All 10 runs displayed the exact
data-folder path in a visible, responsive Explorer window, and the two ranges
did not overlap.
One representative trace of the current implementation showed:
- Explorer stub process start:
+37 ms
- Explorer factory process start:
+1047 ms
- first Explorer view loaded:
+3026 ms
- exact-path responsive-window check:
+3653 ms
- QuickLook UI-thread sampled CPU: approximately
31 ms (0.85%)
- lost ETW events:
0
The trace itself is not attached because it contains machine-specific paths.
The timings above are rounded, path-free summaries.
Expected behavior
Open Data Folder should display the QuickLook data folder promptly in
Explorer.
Desktop (please complete the following information):
- OS Version: Windows 11 Insider Preview build
26310.28111
- QuickLook Version: source build
4.5.0-214-g6928135
Additional context
The candidate implementation uses Shell.Application.Explore and explicitly
releases the temporary COM object. In the treatment runs, the already-running
shell process handled each request; no explicit child Explorer stub/factory
launch was observed. A pull request with that focused change is being prepared.
These results are from one machine and two independent five-run suites. They
show a repeatable local improvement but are not a fleet-wide benchmark or a
formal randomized performance study.
Describe the bug
Selecting Open Data Folder from the QuickLook tray menu can take several
seconds before File Explorer displays the folder and responds to input.
The current handler starts
explorer.exeexplicitly. In a traced run, thiscreated a temporary Explorer stub process, which forwarded the request to a
separate Explorer factory process.
ShellExecuteExWoccupied about 694 ms andreturned 719 ms after the click; the destination factory process did not start
until 1047 ms after the click. QuickLook itself used only about 31 ms of
UI-thread sampled CPU during the 3.65-second operation, so the delay was not a
CPU loop in QuickLook.
To Reproduce
6928135a71531ac7873eb7d676f3ed7c4731d2af.to QuickLook's data folder, and responds to input.
Measured results
Five warm runs of the current implementation completed in:
3312, 2740, 2423, 2883, 2395 ms(median2740 ms)A candidate change that asks the existing Windows shell to explore the folder
avoids the explicit child
explorer.exestub/factory launch and forwardingpath. It completed the same correctness checks in:
468, 598, 503, 456, 509 ms(median503 ms)That is a
2237 ms(81.6%) median reduction. All 10 runs displayed the exactdata-folder path in a visible, responsive Explorer window, and the two ranges
did not overlap.
One representative trace of the current implementation showed:
+37 ms+1047 ms+3026 ms+3653 ms31 ms(0.85%)0The trace itself is not attached because it contains machine-specific paths.
The timings above are rounded, path-free summaries.
Expected behavior
Open Data Folder should display the QuickLook data folder promptly in
Explorer.
Desktop (please complete the following information):
26310.281114.5.0-214-g6928135Additional context
The candidate implementation uses
Shell.Application.Exploreand explicitlyreleases the temporary COM object. In the treatment runs, the already-running
shell process handled each request; no explicit child Explorer stub/factory
launch was observed. A pull request with that focused change is being prepared.
These results are from one machine and two independent five-run suites. They
show a repeatable local improvement but are not a fleet-wide benchmark or a
formal randomized performance study.