Skip to content
Snippets Groups Projects
Verified Commit 9bc3874f authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3423272 by catch, kristiaanvandeneynde: Return early from more cache tag operations

(cherry picked from commit 08bf243d)
parent 86594c44
No related branches found
No related tags found
26 merge requests!11185Issue #3477324 by andypost, alexpott: Fix usage of str_getcsv() and fgetcsv() for PHP 8.4,!10602Issue #3438769 by vinmayiswamy, antonnavi, michelle, amateescu: Sub workspace does not clear,!10301Issue #3469309 by mstrelan, smustgrave, moshe weitzman: Use one-time login...,!10187Issue #3487488 by dakwamine: ExtensionMimeTypeGuesser::guessMimeType must support file names with "0" (zero) like foo.0.zip,!9944Issue #3483353: Consider making the createCopy config action optionally fail...,!9929Issue #3445469 by pooja_sharma, smustgrave: Add additional test coverage for...,!9787Resolve issue 3479427 - bootstrap barrio issue under Windows,!9742Issue #3463908 by catch, quietone: Split OptionsFieldUiTest into two,!9526Issue #3458177 by mondrake, catch, quietone, godotislate, longwave, larowlan,...,!8738Issue #3424162 by camilledavis, dineshkumarbollu, smustgrave: Claro...,!8704Make greek characters available in ckeditor5,!8597Draft: Issue #3442259 by catch, quietone, dww: Reduce time of Migrate Upgrade tests...,!8533Issue #3446962 by kim.pepper: Remove incorrectly added...,!8517Issue #3443748 by NexusNovaz, smustgrave: Testcase creates false positive,!8325Update file Sort.php,!8095Expose document root on install,!7930Resolve #3427374 "Taxonomytid viewsargumentdefault plugin",!7627Issue #3439440 by nicxvan, Binoli Lalani, longwave: Remove country support from DateFormatter,!7445Issue #3440169: When using drupalGet(), provide an associative array for $headers,!7401#3271894 Fix documented StreamWrapperInterface return types for realpath() and dirname(),!7384Add constraints to system.advisories,!7078Issue #3320569 by Spokje, mondrake, smustgrave, longwave, quietone, Lendude,...,!6622Issue #2559833 by piggito, mohit_aghera, larowlan, guptahemant, vakulrai,...,!6502Draft: Resolve #2938524 "Plach testing issue",!38582585169-10.1.x,!3226Issue #2987537: Custom menu link entity type should not declare "bundle" entity key
Pipeline #102337 passed
Pipeline: drupal

#102387

    Pipeline: drupal

    #102374

      Pipeline: drupal

      #102366

        +1
        ......@@ -51,7 +51,6 @@ public function rootTransactionEndCallback($success) {
        * Implements \Drupal\Core\Cache\CacheTagsInvalidatorInterface::invalidateTags()
        */
        public function invalidateTags(array $tags) {
        // Only invalidate tags once per request unless they are written again.
        foreach ($tags as $key => $tag) {
        if (isset($this->invalidatedTags[$tag])) {
        unset($tags[$key]);
        ......@@ -139,6 +138,11 @@ public function isValid($checksum, array $tags) {
        */
        protected function calculateChecksum(array $tags) {
        $checksum = 0;
        // If there are no cache tags, then there is no cache tag to checksum,
        // so return early..
        if (empty($tags)) {
        return $checksum;
        }
        $query_tags = array_diff($tags, array_keys($this->tagCache));
        if ($query_tags) {
        ......
        ......@@ -19,6 +19,12 @@ public function __construct(protected readonly CacheTagsChecksumInterface $check
        * {@inheritdoc}
        */
        public function getCurrentChecksum(array $tags) {
        // If there are no cache tags, there is no checksum to get and the decorated
        // method will be a no-op, so don't log anything.
        if (empty($tags)) {
        return $this->checksumInvalidator->getCurrentChecksum($tags);
        }
        $start = microtime(TRUE);
        $return = $this->checksumInvalidator->getCurrentChecksum($tags);
        $stop = microtime(TRUE);
        ......@@ -46,6 +52,11 @@ public function isValid($checksum, array $tags) {
        * {@inheritdoc}
        */
        public function invalidateTags(array $tags) {
        // If there are no cache tags, there is nothing to invalidate, and the
        // decorated method will be a no-op, so don't log anything.
        if (empty($tags)) {
        return $this->checksumInvalidator->invalidateTags($tags);
        }
        $start = microtime(TRUE);
        $return = $this->checksumInvalidator->invalidateTags($tags);
        $stop = microtime(TRUE);
        ......
        ......@@ -59,7 +59,7 @@ public function testAnonymous() {
        $this->assertSame(137, $performance_data->getCacheGetCount());
        $this->assertSame(47, $performance_data->getCacheSetCount());
        $this->assertSame(0, $performance_data->getCacheDeleteCount());
        $this->assertCountBetween(143, 146, $performance_data->getCacheTagChecksumCount());
        $this->assertCountBetween(40, 43, $performance_data->getCacheTagChecksumCount());
        $this->assertCountBetween(47, 50, $performance_data->getCacheTagIsValidCount());
        $this->assertSame(0, $performance_data->getCacheTagInvalidationCount());
        ......@@ -73,7 +73,7 @@ public function testAnonymous() {
        $this->assertSame(95, $performance_data->getCacheGetCount());
        $this->assertSame(16, $performance_data->getCacheSetCount());
        $this->assertSame(0, $performance_data->getCacheDeleteCount());
        $this->assertCountBetween(79, 80, $performance_data->getCacheTagChecksumCount());
        $this->assertCountBetween(24, 25, $performance_data->getCacheTagChecksumCount());
        $this->assertCountBetween(41, 42, $performance_data->getCacheTagIsValidCount());
        $this->assertSame(0, $performance_data->getCacheTagInvalidationCount());
        ......@@ -87,6 +87,7 @@ public function testAnonymous() {
        $this->assertSame(81, $performance_data->getCacheGetCount());
        $this->assertSame(16, $performance_data->getCacheSetCount());
        $this->assertSame(0, $performance_data->getCacheDeleteCount());
        $this->assertCountBetween(24, 25, $performance_data->getCacheTagChecksumCount());
        $this->assertCountBetween(36, 37, $performance_data->getCacheTagIsValidCount());
        $this->assertSame(0, $performance_data->getCacheTagInvalidationCount());
        }
        ......
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Finish editing this message first!
        Please register or to comment