Skip to content

Open Data Folder takes several seconds to open Explorer #2008

Description

@yijiy

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

  1. Run a Release build from commit 6928135a71531ac7873eb7d676f3ed7c4731d2af.
  2. Open QuickLook's tray menu.
  3. Select Open Data Folder.
  4. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions