From cacb4b646a0a96869cdb69dd08deb9d9900b35fa Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 9 Aug 2023 04:01:53 +0800 Subject: Improve performance on views lookup for ~20% --- runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java | 3 ++- .../rei/plugin/client/runtime/FilteredStacksVisibilityHandler.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime/src/main/java/me/shedaniel') diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java index 97bb8ef83..ac8454a60 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java @@ -223,6 +223,7 @@ public class ViewsImpl implements Views { class Wrapped implements DisplaySpec { private Display display; private List ids = null; + private final int hash = merger.hashOf(display); public Wrapped(Display display) { this.display = display; @@ -238,7 +239,7 @@ public class ViewsImpl implements Views { @Override public int hashCode() { - return merger.hashOf(display); + return hash; } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/FilteredStacksVisibilityHandler.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/FilteredStacksVisibilityHandler.java index 3d6348539..bb04d5f9e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/FilteredStacksVisibilityHandler.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/FilteredStacksVisibilityHandler.java @@ -57,7 +57,7 @@ public class FilteredStacksVisibilityHandler implements DisplayVisibilityPredica @Override public EventResult handleDisplay(DisplayCategory category, Display display) { if (checkHiddenStacks) { - return visible.computeBooleanIfAbsent(display, displayPredicate) ? EventResult.pass() : EventResult.interruptFalse(); + return visible.computeIfAbsent(display, displayPredicate) ? EventResult.pass() : EventResult.interruptFalse(); } return EventResult.pass(); -- cgit