Issue690

Title reduce memory usage
Priority meta Status chatting
Superseder Nosy List haz, jendrik, malte
Assigned To Keywords
Optional summary
* make 64-bit build more memory-efficient (issue213)
* log maximum open-list size and compare to number of generated states (msg5844)
* use more aggressive duplicate elimination if open-list size is a bottleneck 
  (msg5844)
* Consider deque instead of vector for IntHashSet because it can deal with
fragmented memory.
* If we use a deque for IntHashSet, consider growing it in place when resizing.
(This complicates rehashing.)
* Cache heuristic values by default only for a subset of the heuristics 
(issue579)

Created on 2016-11-30.21:13:09 by jendrik, last changed by haz.

Summary
* make 64-bit build more memory-efficient (issue213)
* log maximum open-list size and compare to number of generated states (msg5844)
* use more aggressive duplicate elimination if open-list size is a bottleneck 
  (msg5844)
* Consider deque instead of vector for IntHashSet because it can deal with
fragmented memory.
* If we use a deque for IntHashSet, consider growing it in place when resizing.
(This complicates rehashing.)
* Cache heuristic values by default only for a subset of the heuristics 
(issue579)
Messages
msg5869 (view) Author: malte Date: 2016-12-12.23:35:08
I think the last point of the summary confounded two separate points, so I've
split it into two. (Working with non-contiguous memory is an advantage of deques
that we can get without changing anything about the rehashing. So there is an
easy change and a hard change. Either change can be individually beneficial in
terms of memory usage. I find it hard to predict what they would mean for
runtime, but the second change certainly sounds like it might incur a runtime
penalty.)
msg5845 (view) Author: jendrik Date: 2016-11-30.21:13:09
During the discussion about issue213 we decided to open a meta issue for making 
the planner more memory-efficient.
History
Date User Action Args
2017-01-11 18:58:08hazsetnosy: + haz
summary: * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet because it can deal with fragmented memory. * If we use a deque for IntHashSet, consider growing it in place when resizing. (This complicates rehashing.) * Cache heuristic values by default only for a subset of the heuristics (issue579) -> * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet because it can deal with fragmented memory. * If we use a deque for IntHashSet, consider growing it in place when resizing. (This complicates rehashing.) * Cache heuristic values by default only for a subset of the heuristics (issue579)
2016-12-19 13:51:00jendriksetsummary: * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet because it can deal with fragmented memory. * If we use a deque for IntHashSet, consider growing it in place when resizing. (This complicates rehashing.) -> * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet because it can deal with fragmented memory. * If we use a deque for IntHashSet, consider growing it in place when resizing. (This complicates rehashing.) * Cache heuristic values by default only for a subset of the heuristics (issue579)
2016-12-12 23:35:08maltesetstatus: unread -> chatting
messages: + msg5869
summary: * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet, because it doesn't require contiguous memory and can grow in place. However, this would complicate the rehashing code. -> * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet because it can deal with fragmented memory. * If we use a deque for IntHashSet, consider growing it in place when resizing. (This complicates rehashing.)
2016-12-12 14:44:42jendriksetsummary: * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) -> * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844) * Consider deque instead of vector for IntHashSet, because it doesn't require contiguous memory and can grow in place. However, this would complicate the rehashing code.
2016-11-30 22:41:56jendriksetsummary: * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) -> * make 64-bit build more memory-efficient (issue213) * log maximum open-list size and compare to number of generated states (msg5844) * use more aggressive duplicate elimination if open-list size is a bottleneck (msg5844)
2016-11-30 21:13:09jendrikcreate