In my original "excessive threads" report (for 2.09) XoloX consumed memory while indexing at a rate of aprox 1 MB per thread. (or maybe .5 as I think Sysmon is broken, reporting disk cache usage when there is none.) With 1 thread being created per (sub)directory shared, this can add up rather quickly.
There may have been a leak in 1.09 in the CRC code which did not release RAM after allocating it for another file where one didn't exist in the directory.
Code:
DO
DO
Allocate memory.
Check to see if there is another file to index.
If yes then
CRC check and index file
Free memory
Else Exit DO
End IF
LOOP
If another directory then
Move to next directory
Else exit DO
End IF
LOOP
Instead of:
DO
DO
Check to see if there is another file to index.
If yes then
Allocate memory.
CRC check and index file
Free memory
Else exit DO
End IF
LOOP
If another directory then
Move to next directory
Else exit DO
End IF
LOOP
I say this becaues of how evenly the memory usage matched my shared folders as opposed to my shared files.
In 1.11 indexing the same 192 folders now uses ~3 MB of RAM, probably because CRC checking as been taken out. When folders are unshared, the memory used is freed properly. I think users will have a much better experience with this version.
More tests to follow.