Problem/Motivation
Opening this to have an overview of issues found via performance testing of Drupal CMS 2.0. Many of these will be in dependencies rather than Drupal CMS itself.
Drupal CMS recipes
Blog blocks load views AJAX library #3553276: Blog view enables views ajax for pagerless blocks / #3553279: Views AJAX is library is loaded for displays with no AJAX plugins
Mercury
Mercury JavaScript size / chaining #3553269: navbar JavaScript page weight/network chaining issues
Mercury font preloading: #3553270: Fonts should be preloaded
Byte 404: #3565618: Byte font preloading causes a 404
Mercury webform CSS loading: #3553280: webform-newsletter.css is loaded on every page / #3552020: Simplify newsletter component / #3554413: Exclude main.min.css from preprocessing and minification
Byte recipe / Canvas
Byte / Canvas images should modern image formats: #3553268: Use avif/webp image styles / #3546111: Update image rendering to use the Canvas responsive image
#3565620: Large image loaded from component on front page
Canvas adding js for anonymous users #3565616: Front-end performance: only attach track_navigation asset library for users that can access the Canvas UI
Trash module
Trash module unnecessary CSS #3553272: Trash library is added to the page even if the navigation bar won't be shown
Webform
Webform details library loads jQuery on Byte's front page: #3553278: Try to load details library only when details element is present
Canvas
Component field makes everything uncacheable #3554324: ComponentTreeItemList makes all content uncacheable
ComponentTreeItemList rendering is expensive #3554315: Optimize (and possibly static cache) ComponentTreeItemList::toRenderable()
Comments
Comment #2
catchComment #3
catchComment #4
catchComment #5
catchComment #6
catchComment #7
catchComment #8
catchComment #9
catchComment #10
catchComment #11
phenaproximaRe-saving to trigger a status refresh.
Comment #12
catchComment #13
catchComment #14
catchHad another quick look - just front end stuff with Byte on the front page, found a couple of new issues which I've added here.
Comment #15
catchNew one #3578931: KlaroHelper::matchKlaroApp() / ::getApps() executes an entity query multiple times per request.