ResourceLoader::filter: use APC when running under HHVM
authorOri Livneh <ori@wikimedia.org>
Wed, 13 May 2015 03:45:01 +0000 (20:45 -0700)
committerOri Livneh <ori@wikimedia.org>
Wed, 3 Jun 2015 20:14:10 +0000 (13:14 -0700)
On HHVM, (a) the cost of a ResourceLoader::filter cache miss is smaller, and
(b) APC is faster and more resilient than PHP's. These two things tilt the
scales in favor of using APC rather than Memcached.

Change-Id: I30b490e5bc815849d4b0bb06f2dbbb68825ed225

includes/resourceloader/ResourceLoader.php

index b4b5a2e..ccc7a17 100644 (file)
@@ -195,9 +195,8 @@ class ResourceLoader {
                if ( !$options['cache'] ) {
                        $result = $this->applyFilter( $filter, $data );
                } else {
-                       // Use CACHE_ANYTHING since filtering is very slow compared to DB queries
                        $key = wfMemcKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
-                       $cache = wfGetCache( CACHE_ANYTHING );
+                       $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
                        $cacheEntry = $cache->get( $key );
                        if ( is_string( $cacheEntry ) ) {
                                wfIncrStats( "rl-$filter-cache-hits" );