On Mon 2014-07-21 16:29:51, Joerg Roedel wrote: > Hi, > > On Mon, Jul 21, 2014 at 01:45:07PM +0200, Pavel Machek wrote: > > Ok, so you have sped it up from O(n) to O(log(n)) speed, and increased > > memory requirements from O(n) to O(n * log(n)), right? > > No, new memory requirements are still ~O(n), because the additional pages > needed for the index in the radix tree are outweighted by the memory > saved by the smaller size of struct rtree_node compared to struct > bm_block.
Are we in agreement how O() notation works? So you reduced O(n) to O(n/2 log(n)) ... that's still O(n log(n)), right? > You can also modify the above tool to give you some data to plot, then > you will also SEE that there is still a linear relationship between RAM > size and memory required by the old and new memory bitmap > implementation. I believe radix tree is O(log(N)) per operation, but its memory is certainly not linear. Yes, log(n) is looks quite constant even for huge n :-). Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/