Skip to content

Commit 733ca88

Browse files
author
Peter
committed
fixing major memory wasting problem in memorygraphsafe
1 parent 1d03478 commit 733ca88

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

core/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ elif [ "$FILE" = "germany" ]; then
2828
LINK=http://download.geofabrik.de/osm/europe/germany.osm.bz2
2929

3030
# For import we need a lot more memory. For the mmap storage you need to lower this in order to use off-heap memory.
31-
JAVA_OPTS_IMPORT="-XX:PermSize=20m -XX:MaxPermSize=20m -Xmx2700m -Xms2700m"
31+
JAVA_OPTS_IMPORT="-XX:PermSize=10m -XX:MaxPermSize=10m -Xmx2700m -Xms2700m"
3232
JAVA_OPTS="-XX:PermSize=20m -XX:MaxPermSize=20m -Xmx2700m -Xms2700m"
3333
SIZE=35000000
3434
else

core/src/main/java/de/jetsli/graph/reader/OSMReader.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package de.jetsli.graph.reader;
1717

18-
import de.jetsli.graph.routing.DijkstraBidirectionRef;
18+
import de.jetsli.graph.routing.DijkstraBidirection;
1919
import de.jetsli.graph.storage.Storage;
2020
import de.jetsli.graph.util.CalcDistance;
2121
import de.jetsli.graph.routing.Path;
@@ -128,8 +128,8 @@ public void doDijkstra(int runs) throws Exception {
128128
Location2IDIndex index = new Location2IDQuadtree(g).prepareIndex(20000);
129129
double minLat = 49.484186, minLon = 8.974228;
130130
double maxLat = 50.541363, maxLon = 10.880356;
131-
RoutingAlgorithm algo = new DijkstraBidirectionRef(g);
132-
// RoutingAlgorithm algo = new DijkstraBidirection(g);
131+
// RoutingAlgorithm algo = new DijkstraBidirectionRef(g);
132+
RoutingAlgorithm algo = new DijkstraBidirection(g);
133133
// RoutingAlgorithm algo = new DijkstraSimple(g);
134134
// RoutingAlgorithm algo = new AStar(g);
135135

core/src/main/java/de/jetsli/graph/storage/MemoryGraphSafe.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,11 @@ private void ensureEdgePointer(int pointer) {
126126
private void ensureNodeIndex(int index) {
127127
if(index < size)
128128
return;
129+
129130
size = index + 1;
130-
131+
if(size <= lats.length)
132+
return;
133+
131134
int cap = Math.max(10, Math.round(size * FACTOR));
132135
// TODO deletedNodes = copy(deletedNodes, cap);
133136
lats = Arrays.copyOf(lats, cap);

0 commit comments

Comments
 (0)