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 /lib/private/l10n.php | |
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...
Diffstat (limited to 'lib/private/l10n.php')
-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; } |