Hello,
I'm looking for some information on any known performance issues, or factors that might cause a severe performance degradation with Superfish menus. Here is some background and raw numbers:
1. We're running Superfish with 5 top level menus, and a second level with roughly 8-12 menu items, and roughly 10 third level menu items with only 4-5 links each.
2. The menu block is placed via the Context module, along with a Domain Context rule to show a different but similar menu on one of the URLs.
3. We do not (and cannot) have block caching enabled (due to Workbench Access and Node Override Options modules)
4. When Superfish is enabled here are the numbers we are seeing:
485 queries with a page execution time of 3+ seconds
when we disable Superfish (or limit it to 0 levels), we get dramatically better numbers:
90 queries with a page execution time of < 1 second
As you can see those are some pretty dramatic numbers (similar results are achieved if we include a static version of the menu list in a block, and run the Superfish library solo with no Drupal module enabled).
Any ideas on what could be causing such a big performance hit?
Comments
Comment #1
mehrpadin commentedHey there,
This is probably related http://drupal.org/node/1612498 which is not yet committed, part of my to-do for v1.9.
Update: Are these number coming from Devel?
Comment #2
broeker commentedYes, all of the performance numbers are from the Devel module.
Comment #3
mehrpadin commentedOk, will add it to my to-do list, something doesn't seem to be right though, particularly:
Comment #4
mehrpadin commentedOk, I did some tests but no dramatic number here; huge menu (about 500 items), I'll do some more tests later.
Can you please do the same test with the latest development release as well?
Comment #5
mehrpadin commentedComment #6
bpsommerville commentedI have had this issue too, and I believe the fault is not with Superfish but the core menu load code. The performance problem shows up when the menu links to non node destinations. For every item in the menu, drupal loads the associated entity to check access, translation, etc. Because Superfish is loading the entire menu tree the number of queries is O(n) with the number of menu items.
This has been logged as https://drupal.org/node/1978176 in core... no fix yet.
Comment #6.0
bpsommerville commentedtypo
Comment #7
mehrpadin commented