Developers.Hash.TigerTree.Math.Results

From Shareaza Wiki
Revision as of 20:09, 20 June 2009 by Kevogod (talk | contribs) (1 revision)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.