From b20d698ebd630a5d8030c42d3b88f6ef54224e36 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Thu, 27 Nov 2014 00:01:55 +0100 Subject: [PATCH] Cache results of available languages MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This function is about 8 times calles for every single page call, when caching this variable I was able to gain a small performance improvement from 20,512 µs to 630 µs profiled with xhprof Surely, this is no gigantic gain but if we would do that for every function out there... --- lib/private/l10n.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/private/l10n.php b/lib/private/l10n.php index afa066c30ef..bc4e53e975c 100644 --- a/lib/private/l10n.php +++ b/lib/private/l10n.php @@ -20,6 +20,7 @@ class OC_L10N implements \OCP\IL10N { * cache */ protected static $cache = array(); + protected static $availableLanguages = array(); /** * The best language @@ -468,6 +469,9 @@ class OC_L10N implements \OCP\IL10N { * @return array an array of available languages */ public static function findAvailableLanguages($app=null) { + if(!empty(self::$availableLanguages)) { + return self::$availableLanguages; + } $available=array('en');//english is always available $dir = self::findI18nDir($app); if(is_dir($dir)) { @@ -479,6 +483,8 @@ class OC_L10N implements \OCP\IL10N { } } } + + self::$availableLanguages = $available; return $available; } -- 2.39.5