diff options
author | Lukas Reschke <lukas@owncloud.com> | 2014-11-27 00:01:55 +0100 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2014-11-27 00:01:55 +0100 |
commit | b20d698ebd630a5d8030c42d3b88f6ef54224e36 (patch) | |
tree | fb5e4c0aeec85b991d8db9394370e6ce9545946b | |
parent | c749570a06fa4d24927fbd7aad13b36a8f1ff439 (diff) | |
download | nextcloud-server-b20d698ebd630a5d8030c42d3b88f6ef54224e36.tar.gz nextcloud-server-b20d698ebd630a5d8030c42d3b88f6ef54224e36.zip |
Cache results of available languages
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...
-rw-r--r-- | lib/private/l10n.php | 6 |
1 files changed, 6 insertions, 0 deletions
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; } |