Revision 00861be467251c4568095a194d00bbae848f5881 authored by Philippe Canal on 10 June 2011, 16:19:12 UTC, committed by Philippe Canal on 10 June 2011, 16:19:12 UTC
From Elvin

- completely remove the recycle list and I recycle blocks directly from the read list ( the oldest block in the list is recycled first)
- improve the prefetching strategy so that if the user reads sparsely (only one entry from a block) then the prefetching thread won't prefetch the following block as it will never be used. But it will prefect the block corresponding to the new entry requested.
- so now for example if one wants to read only entries 0, 1000, 2000 and 3000 the program will only prefetch 4 blocks (in comparison to 32 as it did before)
- this also leads to smaller run times when reading sparsely
- by removing the recycle list, during any type of execution (sequential, sparse) I only use two TFPBlock thus considerably reducing the memory footprint. (you can see how blocks are created and recycled by putting two prints in TFilePrefetch::CreateObject), and valgrind --tool=massif shows a maximum size of 60 MB allocated for TFPBlock.


git-svn-id: http://root.cern.ch/svn/root/branches/v5-30-00-patches@39675 27541ba8-7e3a-0410-8455-c3a389f83636
1 parent ca8737f
History
File Mode Size
doc
pyroot
ruby
CMakeLists.txt -rw-r--r-- 88 bytes

back to top