I don’t know why, but TotalCmd still uses algorithms that are suitable only for proof-of-concept versions of applications. Using the simplest algorithms in 2019 looks very strange.
And the strangest thing is that the TC-author does not want to improve the algorithms implemented in earlier versions TotalCmd.
Earlier, I already suggested that the TC-author improve the algorithm for displaying the contents of archives.
However, it became interesting for me to learn how TotalCmd will behave with proper implementation of file storage.
To do this, I decided to write a WCP-plugin that hook 3 functions in TotalCmd and patch a pointer to file collection.
Now let's try to test the WCP-plugin for speed.
Test bench: Intel J1900 @ 2.4GHz, DDR3 16GiB, SSD 860EVO 512GB, Win7 SP1 x64, TotalCmd 9.22a 32-bit
Test file: 11GB TAR-archive with android sources and etc., which contains 453973 files and 52930 directories.
First test: file collection patching is disabled (the plugin works in monitoring mode).
Second test: file collection patching is ENABLED.
Code: Select all
Test 1 | Test 2 | items | comment/directory
----------------------------------------------------------------
46527.07 ms | 3351.26 ms | 506900 | file collection building
----------------------------------------------------------------
4615.79 ms | 0.12 ms | 1 | [root dir]
4952.83 ms | 1.00 ms | 51 | [AP\kernel\firmware]
4830.28 ms | 3.45 ms | 130 | [AP\kernel\kernel]
5653.89 ms | 5.08 ms | 188 | [AP\external]
It turns out that the WCP-plugin speeds up work with archives at least 1000 times



Download: wcpatcher_v0.7.zip (with source code)
Attention!!!
When the WCPatcher is activated, glitches are observed after deleting or adding a file to/from the archive!
This issue relevant only for archives that contain more than 3000 elements!
Supported versions of TotalCmd: 9.22a, 9.50b11, 9.50b12, 9.50b12a, 9.50b13
Latest version of imgcfg.ini: https://github.com/remittor/wcpatcher/blob/dev/out/imgcfg.ini
Notes:
- The WCP-plugin activates file collection patching for archives that contain more than 3000 elements.
- To force switch ON the patching, add the substring "TURN+ON+WCP" in the archive file name.
- To force switch OFF the patching, add the substring "TURN+OFF+WCP" in the archive file name.
- To view logs, use DbgView.
Installation:
Next, in order to load plugin at Total Commander start, you should create the fictitious color scheme:
1. On the “Color” page press “Define colors by file type…” button.
2. In the “Define colors by file type” dialog set cursor in any place in the list, and press “Add…” button.
3. Press “Define…” button.
4. In the “Define selection” dialog move to “Plugins” tab.
5. Select in “Plugin” dropdown list “wcpatcher”.
6. Field "Property" can contain any value (even empty).
7. Select in “OP” dropdown list “=” and set in following field any integer, for example “1”.
8. Press “Save” button, give the template some name, for example “WCP”.
9. Next, repeatedly press OK button in all dialogs until options dialog will be closed.
10. Restart TotalCmd.