Skip to content

Add Option to ignore file name capitalization in IFileStore.fetchInfo() - #2952

Open
HannesWell wants to merge 3 commits into
eclipse-platform:masterfrom
HannesWell:windows-file-attribute-read-speedup
Open

HannesWell wants to merge 3 commits into
eclipse-platform:masterfrom
HannesWell:windows-file-attribute-read-speedup

Conversation

@HannesWell

@HannesWell HannesWell commented Sep 19, 2026

Copy link
Copy Markdown
Member

Introduce a new file-system option EFS.IGNORE_NAME_CASE and add a fast-path to Win32Handler in case that option is set to not determine the file's real name on the file-system.
Additionally overwrite Win32Handler.listDirectoryAndGetFileInfos(String) to leverage that new fast-path too, similar to

This currently is based on

which introduces the methods IFileStore.exists() and IFileStore.isDirectory(), which make it simpler to use the new option here.

In a very simple benchmark I ran locally, basically just fetching the same file's info in a loop a million times, the new fast-path was almost twice as fast as the existing code.
Real numbers are probably different. For random, not previously fetched files, the difference might even be greater and the numbers probably also depend on the size of the parent directory (i.e. I assume the currently used method to be slower).

The new methods make the corresponding methods more convenient to use
and allow subsequent optimizations of their implementation.
@eclipse-platform-bot

eclipse-platform-bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

This pull request changes some projects for the first time in this development cycle.
Therefore the following files need a version increment:

resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
From 7c3997b9ae628393d4c6fe9c9b4d73f7fcd538c0 Mon Sep 17 00:00:00 2001
From: Eclipse Platform Bot <platform-bot@eclipse.org>
Date: Sun, 20 Sep 2026 11:45:30 +0000
Subject: [PATCH] Version bump(s) for 4.42 stream


diff --git a/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF b/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF
index 325dc32f3e..b2a8ed32f2 100644
--- a/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF
+++ b/resources/examples/org.eclipse.ui.examples.filesystem/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
 Automatic-Module-Name: org.eclipse.ui.examples.filesystem
 Bundle-Name: Efs Examples Plug-in
 Bundle-SymbolicName: org.eclipse.ui.examples.filesystem;singleton:=true
-Bundle-Version: 1.2.100.qualifier
+Bundle-Version: 1.2.200.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.filesystem,
  org.eclipse.core.resources,
-- 
2.55.0

Further information are available in Common Build Issues - Missing version increments.

@github-actions

github-actions Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Test Results

    51 files   -   3      51 suites   - 3   53m 43s ⏱️ - 5m 51s
 4 810 tests ±  0   4 783 ✅  -   5   22 💤 ±0  3 ❌ +3  2 🔥 +2 
12 061 runs   - 260  11 904 ✅  - 264  153 💤 ±0  3 ❌ +3  1 🔥 +1 

For more details on these failures and errors, see this check.

Results for commit 9ce1cf8. ± Comparison against base commit 2d15cf3.

♻️ This comment has been updated with latest results.

Introduce a new file-system option `EFS.IGNORE_NAME_CASE` and add a
fast-path to Win32Handler in case that option is set to not determine
the file's real name on the file-system.

Additionally overwrite Win32Handler.listDirectoryAndGetFileInfos(String)
to leverage that new fast-path, too.
@HannesWell
HannesWell force-pushed the windows-file-attribute-read-speedup branch from 6f221cf to 97f2b34 Compare September 20, 2026 11:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants