
I think std::list is slower than my list (I could be wrong of course), because it allocates memory from the heap for each node, whereas my list requires the elements to have the node embedded in them, and so blocks are also nodes. As for pool, I wasn't aware that boost had one, and I am not sure it is useful. If, in the end, we find that it's good to have a pool, and if the library is accepted in boost, I will use the boost pool, provided that it is fast enough for the collector. My pool uses the same trick as the list, i.e. the elements must also be nodes. I will try to run a test to see if boost's pool is efficient enough for the collector. The most important thing in this type of software is to try to keep as much as possible in the cache, and having linked list nodes embedded into the elements is one way to achieve less cache thrashing. Larry Evans wrote:
On 09/16/07 16:56, Achilleas Margaritis wrote: [snip]
You can find a new version of my portable precise C++ garbage collector in vault/memory. [snip] Why doesn't cppgc.hpp use std::list instead of _list defined in cppgc.hpp and why isn't the boost pool:
http://www.boost.org/libs/pool/doc/index.html
used instead of the _pool of cppgc.hpp?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost