-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Feature: Major Speed Optimizations #17345
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Feature: Major Speed Optimizations #17345
Conversation
Performance improvements for file navigation and enumeration: - Increased concurrency limits: 4 concurrent folder enumerations, 20 concurrent thumbnail loads - Implemented smart preloading for visible items with viewport-based loading - Added differential collection updates to prevent UI flashing - Increased batch size from 32 to 200 items for better throughput - Added icon caching with WeakReference for memory efficiency - Removed expensive async operations during file enumeration - Added performance monitoring for slow operations - Fixed icon flashing by setting LoadFileIcon = true immediately - Optimized zip file detection to avoid unnecessary async calls These changes significantly improve perceived performance and reduce UI lag during file navigation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
@@ -391,14 +397,16 @@ CancellationToken cancellationToken | |||
} | |||
else | |||
{ | |||
if (ZipStorageFolder.IsZipPath(itemPath) && await ZipStorageFolder.CheckDefaultZipApp(itemPath)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please note, changing this logic is likely to cause issues.
#6457
@@ -1328,9 +1600,9 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() => | |||
{ | |||
_ = Task.Run(async () => | |||
{ | |||
await Task.Delay(500); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hishitetsu can confirm, but if I recall correctly, this delay is to allow time for Windows to finish caching the thumbnail for items in cloud drives.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct. Without this delay, thumbnails will not be able to load.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need a comment for this fr...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is one a little higher up. That said, there are a lot of intricacies and this code is difficult to follow even with comments.
- Fixed TaskCanceledException by using local cancellation tokens instead of global ones - Improved error handling with try-catch blocks around all async operations - Enhanced viewport detection with larger buffers for smoother scrolling - Added Ctrl+Shift+T hotkey to force load all missing thumbnails - Implemented progressive thumbnail loading with priority system - Added low-resolution thumbnail pre-loading for better performance - Fixed race conditions in concurrent thumbnail operations - Added proper disposal of resources in Dispose method - Improved scroll throttling to prevent excessive thumbnail loads These changes significantly improve thumbnail reliability and prevent crashes during fast scrolling or navigation.
There's a few issues, I had one time where all the folders icons would be the same in medium layout size, I have restarted and not been able to reproduce it It's also slower for me then in preview, clicking on a folder takes a while to start highlighting it and then only after it's highlighted will it open |
Performance improvements for file navigation and enumeration:
These changes significantly improve perceived performance and reduce UI lag during file navigation.