verbb / cp-nav

Control Panel Nav is a Craft CMS plugin to help manage your Control Panel navigation.
MIT License
130 stars 11 forks source link

CP Slow with two or more users logged in #15351 #140

Open adrianjean opened 1 month ago

adrianjean commented 1 month ago

Describe the bug

Cross posting this issue https://github.com/craftcms/cms/issues/15351 here, an issue I am seeing with CP Nav installed. Basically when the plugin is installed, it causes a slow page load when non-admins access the site.

Worked with the P&T team to diagnose the issue as relating to CP Nav.

Steps to reproduce

  1. In one browser (Chrome for example), create User A, log-into the CP. Notice how fast the CP is as normal.
  2. In one browser (Safari for example), create User B. Log-into the CP in a different browser. Notice a short lag before the CP loads. Once it loads notice how fast the CP is, as normal.
  3. Switch back to the browser with User A, and refresh the page. Notice the lag in the CP loading?. Once it loads notice how fast the CP is, as normal.
  4. Switch back to the browser with User B, and refresh the page. Notice the lag in the CP loading?. Once it loads notice how fast the CP is, as normal.
  5. ... etc. etc.

Uninstalling CP Nav makes the issue go away.

Craft CMS version

Craft Pro 5.2.5 (Happens in 4.x as well)

Plugin version

8.3.9

Multi-site?

Yes

Additional context

No response

engram-design commented 1 month ago

I have a feeling this might be related to project config and the YAML files being generated. I actually can't replicate this on a new site though (Craft 4.x or 5.x).

Maybe to test the project config stuff, if you want to temporarily disable YAML file generation to see if that changes things on your end?

In your config/app.php:

<?php

return [
    'components' => [
        'projectConfig' => function() {
            $config = craft\helpers\App::projectConfigConfig();
            $config['writeYamlAutomatically'] = false;
            return Craft::createObject($config);
        },
    ],
];

(possibly related to https://github.com/craftcms/cms/issues/14140)

adrianjean commented 1 month ago

I tried the code you supplied, and it definitely has a positive impact! Almost as snappy as not having the plugin installed.

engram-design commented 1 month ago

Interesting and good to know. I've found that for medium to large sites the YAML files take a stupidly long time to generate, causing lag or straight up making the CP inaccessible. It's not specifically this issue, but it probably will help to track down what's happening. My issue with Craft on that in general still hasn't been resolved.

So yeah, looks like CP Nav is re-generating the YAML files in some fashion. I'm struggling to reproduce this, but will keep at it.