From 04b2b29db7444904cbf35e2fb84734d7ebacf4e9 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Fri, 19 Nov 2010 01:40:00 +0000 Subject: [PATCH] Use wfGetCache( CACHE_ANYTHING ) instead of $wgMemc to store the result of ResourceLoader::filter(). Speeds up cold cache view of the main page on a non-APC default installation by a factor of 2.3 (measured using siege, no concurrency, URL list captured from Firefox, server = my laptop). --- includes/resourceloader/ResourceLoader.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/includes/resourceloader/ResourceLoader.php b/includes/resourceloader/ResourceLoader.php index ea1173682a..f27d1e36ca 100644 --- a/includes/resourceloader/ResourceLoader.php +++ b/includes/resourceloader/ResourceLoader.php @@ -119,8 +119,6 @@ class ResourceLoader { * @return String: Filtered data */ protected function filter( $filter, $data ) { - global $wgMemc; - wfProfileIn( __METHOD__ ); // For empty/whitespace-only data or for unknown filters, don't perform @@ -132,9 +130,11 @@ class ResourceLoader { return $data; } - // Try for Memcached hit + // Try for cache hit + // Use CACHE_ANYTHING since filtering is very slow compared to DB queries $key = wfMemcKey( 'resourceloader', 'filter', $filter, md5( $data ) ); - $cacheEntry = $wgMemc->get( $key ); + $cache = wfGetCache( CACHE_ANYTHING ); + $cacheEntry = $cache->get( $key ); if ( is_string( $cacheEntry ) ) { wfProfileOut( __METHOD__ ); return $cacheEntry; @@ -159,7 +159,7 @@ class ResourceLoader { } // Save filtered text to Memcached - $wgMemc->set( $key, $result ); + $cache->set( $key, $result ); wfProfileOut( __METHOD__ ); -- 2.20.1