Project Updated - 07 March 2020
7.2 R2: A second revision of v7.2 was released on March 7th, since the original 7.2 release zip was missing the main demo. The only change is a minor update to sorting which only effects special folders with default columns in non-default positions, and an option to always use IShellFolder-based sorting for non-default columns, which keeps folders separated but in most (but not all) cases carries a significant performance cost; default is off.
Original update on March 5th:
Due to the extreme magnitude of the performance gain from the following issue, I went ahead and updated the project:
(Fixed in 7.2: Major performance issue) It turns out basically the entire reason ucShellBrowse is slow for large folders is querying for the overlay icons. It was being done with IShellIconOverlay as that's the only way to get custom overlays for Github, TortoiseSVN, Dropbox, etc. but that single call causes a performance hit by a factor of between 10x and 100x. Loading a 3,000 item folder literally goes from 100s to 1s just by removing that call. It's now a default-off option. The new way will still display overlays for Shortcuts and Shared folders without enabling the ExtendedOverlays option or suffering any performance degradation, as the index for these is a system constant and presence is determined simply by normal attributes.
Also fixed the remaining combined-folders bug.
Also note that ucShellTree has been updated with this same fix, if you also use that in your project.Code:'New in v7.2 R2 (Released 07 March 2020) ' '-Rereleased because I forgot to include the main demo. ' '-Sorting system has an optional upgrade: AlwaysSortWithISF uses the IShellFolder ' CompareIDs sorting method for all columns that are supported. This keeps folders ' separated and sorts non-standard data types better, but *sometimes* carries a ' significant performance hit, so it's off by default. ' '-(Bug fix) For the CompareIDs sort for the standard types (always enabled), some ' special folders contained the standard types, but in a non-standard ' order. Since the order was hard-coded, this led to incorret sorting. ' Now columns are mapped with each folder load to the correct column id. ' 'New in v7.2 (Released 05 March 2020) ' '-Extended Icon Overlays (e.g. for Tortoise SVN, Dropbox, Github, etc) are now ' an option, ExtendedOverlays, that default to false after finding that querying ' for them causes a *massive* performance hit. I thought things were just slow ' because of complexity and this being VB, but just eliminating the query speeds ' up loading folders ***by a factor of 10-100**. 3000 items used to take over 100s ' on a 7200rpm spinning drive, it now only takes 1.4s. ' The Shortcut overlay, and Share overlay, can be determined by attributes, so these ' are the basic overlays that will still appear when the extended ones are turned off. ' '-Numerous other internal performance improvements have been made. ' '-(Bug fix) The folders combining if one was selected while the previous was still ' loading hadn't been fixed for manual calls to CreateCustomFolder or one ' of the file search calls.




Reply With Quote
