Developers.Hash.TigerTree.Math.Results
TigerTree math results
Shareaza uses a starting block size of 1024, and a maximum tree height of 9.
I've put my tree math function side-by-side with the Shareaza 2.0 code, and confirmed that they calculate tree dimensions the same way. Here are some results:
||filesize|height|blocksize|blocks|hashes|treesize||1|1|1024|1|1|24||1024|1|1024|1|1|24||1025|2|1024|2|3|72||4096|3|1024|4|7|168||4097|4|1024|5|11|264||6144|4|1024|6|12|288||6145|4|1024|7|14|336||262144|9|1024|256|511|12264||262145|9|2048|129|264|6336||4145029|9|16384|253|507|12168||
For a maximum tree height of 9, the tipping point is a 256 KB file. That's the largest file that a 9 level tree can describe using the starting block size of 1 KB. Add 1 byte to that file, and Shareaza switches to a block size of 2 KB. Here are files that fill their block sizes:
||filesize|height|blocksize|blocks|hashes|treesize||262144|9|1024|256|511|12264||524288|9|2048|256|511|12264||1048576|9|4096|256|511|12264||2097152|9|8192|256|511|12264||4194304|9|16384|256|511|12264||
Here are files 1 byte bigger:
||filesize|height|blocksize|blocks|hashes|treesize||262145|9|2048|129|264|6336||524289|9|4096|129|264|6336||1048577|9|8192|129|264|6336||2097153|9|16384|129|264|6336||
Shareaza starts out with a block size of 1 KB, and keeps doubling it to keep trees 9 levels high.