I profiled blind search on pegsol-08-strips:p24.pddl. In 32-bit mode revision v1
uses 7.5s and v3 uses 9.6s.
v1:
3.13% of the time is spent in StateRegistry::get_successor_state().
StateRegistry::insert_id_or_pop_state() seems to be inlined.
3.13% of the time is spent inserting states into the closed list.
v3:
18.18% of the time is spent in StateRegistry::get_successor_state().
15.16% of the time is spent in StateRegistry::insert_id_or_pop_state().
10.30% of the time is spent in IntHashSet::reserve().
3.68% of the time is spent sorting the temporary vector.
One parameter, we could try changing is "max_distance". Currently each
key can be at most 32 buckets from its ideal bucket. Raising this
number would allow for higher load factors (and to a lesser extent
fewer resizes) at the cost of longer lookups.
For v3 in 64-bit mode changing this parameter for the pegsol task produced:
max_distance: 32 64 128
load factor: 0.43 0.86 0.86
peak memory: 100 MB 70 MB 70 MB
resizes: 22 21 21 |