From 1de66cb0de7296686327921241117b05b33435f8 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 13 Mar 2024 17:11:06 +0000 Subject: [PATCH] RegistryTrait: added fast path optimization this reduces VanillaBlocks access time from 360 ns to 230 ns on my machine - an improvement of about 35%. --- src/utils/RegistryTrait.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/utils/RegistryTrait.php b/src/utils/RegistryTrait.php index cf231bf21..f1972b518 100644 --- a/src/utils/RegistryTrait.php +++ b/src/utils/RegistryTrait.php @@ -114,6 +114,13 @@ trait RegistryTrait{ if(count($arguments) > 0){ throw new \ArgumentCountError("Expected exactly 0 arguments, " . count($arguments) . " passed"); } + + //fast path + if(self::$members !== null && isset(self::$members[$name])){ + return self::preprocessMember(self::$members[$name]); + } + + //fallback try{ return self::_registryFromString($name); }catch(\InvalidArgumentException $e){