From: Lukas Reschke Date: Fri, 9 Jan 2015 22:34:26 +0000 (+0100) Subject: Verify whether value is already normalized X-Git-Tag: v8.0.0alpha2~3^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e80ece9a2b39d18eea356196a08211c6b36a4048;p=nextcloud-server.git Verify whether value is already normalized Apparently `normalizer_normalize` is not verifying itself whether the string needs to be converted or not. Or does it at least not very performantly. This simple change leads to a 4% performance gain on the processing of normalizeUnicode. Since this method is called quite often (i.e. for every file path) this has actually a measurable impact. For examples searches are now 200ms faster on my machine. Still not perfect but way to go. Part of https://github.com/owncloud/core/issues/13221 --- diff --git a/lib/private/util.php b/lib/private/util.php index 3178639b02e..ec3640503e4 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -1274,14 +1274,17 @@ class OC_Util { * @return bool|string */ public static function normalizeUnicode($value) { - $normalizedValue = normalizer_normalize($value); + if(Normalizer::isNormalized($value)) { + return $value; + } + + $normalizedValue = Normalizer::normalize($value); if ($normalizedValue === null || $normalizedValue === false) { - \OC_Log::write('core', 'normalizing failed for "' . $value . '"', \OC_Log::WARN); - } else { - $value = $normalizedValue; + \OC::$server->getLogger()->warning('normalizing failed for "' . $value . '"', ['app' => 'core']); + return $value; } - return $value; + return $normalizedValue; } /**