dev/core#3814 Use fastArray cache for extension system
authorEileen McNaughton <emcnaughton@wikimedia.org>
Sat, 8 Oct 2022 10:02:43 +0000 (11:02 +0100)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Sat, 8 Oct 2022 10:02:43 +0000 (11:02 +0100)
This reduces repetitive array hits on the Redis or other cache as they
are stored in the php layer. The Redis hits are not slow - but the
serializing & unserializing is so this is a performance improvement

CRM/Extension/System.php

index 99a920de37e25a3165be28b0781c9c0214af433e..4361314395afd1580be39c529dc58eb8f5e450bb 100644 (file)
@@ -251,7 +251,10 @@ class CRM_Extension_System {
   }
 
   /**
+   * Get the cache object.
+   *
    * @return CRM_Utils_Cache_Interface
+   * @throws \CRM_Core_Exception
    */
   public function getCache() {
     if ($this->cache === NULL) {
@@ -261,6 +264,7 @@ class CRM_Extension_System {
         'name' => $cacheGroup,
         'type' => ['*memory*', 'SqlGroup', 'ArrayCache'],
         'prefetch' => TRUE,
+        'withArray' => 'fast',
       ]);
     }
     return $this->cache;