From be303f2e57cf4892bc50da2c4c2484509609c81e Mon Sep 17 00:00:00 2001 From: Leijurv Date: Wed, 29 Aug 2018 16:13:14 -0700 Subject: [PATCH] crucial performance optimization --- .../pathing/calc/openset/BinaryHeapOpenSet.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java b/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java index da2357d9f..47d370c63 100644 --- a/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java +++ b/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java @@ -108,14 +108,13 @@ public final class BinaryHeapOpenSet implements IOpenSet { int smallerChild = 2; double cost = val.combinedCost; do { - int right = smallerChild + 1; PathNode smallerChildNode = array[smallerChild]; double smallerChildCost = smallerChildNode.combinedCost; - if (right <= size) { - PathNode rightChildNode = array[right]; + if (smallerChild < size) { + PathNode rightChildNode = array[smallerChild + 1]; double rightChildCost = rightChildNode.combinedCost; if (smallerChildCost > rightChildCost) { - smallerChild = right; + smallerChild++; smallerChildCost = rightChildCost; smallerChildNode = rightChildNode; } @@ -128,8 +127,7 @@ public final class BinaryHeapOpenSet implements IOpenSet { val.heapPosition = smallerChild; smallerChildNode.heapPosition = index; index = smallerChild; - smallerChild = index << 1; - } while (smallerChild <= size); + } while ((smallerChild <<= 1) <= size); return result; } }