summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2014-11-27 00:01:55 +0100
committerLukas Reschke <lukas@owncloud.com>2014-11-27 00:01:55 +0100
commitb20d698ebd630a5d8030c42d3b88f6ef54224e36 (patch)
treefb5e4c0aeec85b991d8db9394370e6ce9545946b
parentc749570a06fa4d24927fbd7aad13b36a8f1ff439 (diff)
downloadnextcloud-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.php6
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;
}