Message3878

Author andrew.coles
Recipients andrew.coles, erez, florian, jendrik, malte, silvia
Date 2014-10-27.00:45:25
Content
I've been looking into memory management recently*, and various hash set/hash
table options, and recalled there was a thread here on that topic.

You might want to try the attached replacement for the standard C++ allocator,
for use where objects will be persistent - e.g. nodes inside data structures. 
In state_registry.h switch the definition of StateIDSet to:

    typedef __gnu_cxx::hash_set<StateID,
                                StateIDSemanticHash,
                                StateIDSemanticEqual,
                                ChunkAllocator<StateID>  > StateIDSet;

A quick unscientific experiment doing this on a 32-bit build shows a 17% or so
reduction in memory usage.


* In IPC2011, POPF used 6GB of memory in 25s, so this is long overdue
Files
File name Uploaded
chunk_allocator.h andrew.coles, 2014-10-27.00:45:25
History
Date User Action Args
2014-10-27 00:45:25andrew.colessetmessageid: <1414367125.16.0.324887678249.issue213@unibas.ch>
2014-10-27 00:45:25andrew.colessetrecipients: + andrew.coles, malte, erez, silvia, jendrik, florian
2014-10-27 00:45:25andrew.coleslinkissue213 messages
2014-10-27 00:45:25andrew.colescreate