Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-5494

Improve page load time when it contains lots of links

    XMLWordPrintable

Details

    • 9
    • 37
    • We collect Confluence feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      NOTE: This suggestion is for Confluence Server. Using Confluence Cloud? See the corresponding suggestion.

      By links, we mean links to other Confluence pages.

      This is slow at the moment because for each link Confluence needs to hit the database to determine if the link points to an existing page or not.

      Following appears in the logs:

      2015-11-05 06:59:48,728 DEBUG [http-nio-8090-exec-2] [atlassian.util.profiling.UtilTimerStack] log [213ms] - /display/KEY/test+links
        [0ms] - UserAccessor.getExistingUserByKey()
        [2ms] - UserAccessor.getUserByName()
        [0ms] - UserAccessor.getExistingUserByKey()
        [0ms] - UserAccessor.getUserByName()
        [134ms] - XW Interceptor: Before defaultStack: /pages/viewpage.action (ViewPageAction.execute())
          [0ms] - UserAccessor.exists()
          [0ms] - UserAccessor.getPropertySet()
          [0ms] - SpaceAwareInterceptor.intercept()
          [4ms] - PageAwareInterceptor.intercept()
            [3ms] - PageManager.getPage()
            [1ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getGroup()
              [0ms] - UserAccessor.hasMembership()
            [0ms] - PermissionManager.hasPermission()
          [0ms] - CommentAwareInterceptor.intercept()
          [0ms] - UserAwareInterceptor.intercept()
          [0ms] - BootstrapAwareInterceptor.intercept()
          [0ms] - PermissionManager.hasPermission()
          [101ms] - XW Interceptor: After defaultStack: /pages/viewpage.action (ViewPageAction.execute())
            [101ms] - XW Interceptor: After validatingStack: /pages/viewpage.action (ViewPageAction.execute())
              [0ms] - PageManager.getPage()
              [0ms] - PageManager.getPage()
              [0ms] - PageManager.getPage()
              [1ms] - PageManager.getPage()
              [0ms] - PageManager.getPage()
              [1ms] - PageManager.getPage()
              [0ms] - PageManager.getPage()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.hasPermission()
              [88ms] - XW View: doExecute(/pages/viewpage.vm)
                [2ms] - XW View: getTemplate(/pages/viewpage.vm)
                [83ms] - ApplyDecoratorDirective.render()
                  [0ms] - SpaceManager.getSpace()
                  [0ms] - UserAccessor.getPropertySet()
                  [80ms] - Rendering velocity template: /decorators/root.vmd
                    [80ms] - ApplyDecoratorDirective.render()
                      [0ms] - SpaceManager.getSpace()
                      [0ms] - UserAccessor.getPropertySet()
                      [79ms] - Rendering velocity template: /decorators/page.vmd
                        [0ms] - Rendering velocity template: /includes/skiplinked-section.vm
                        [28ms] - Parse: /decorators/includes/content-navigation.vm
                          [0ms] - PermissionManager.hasPermission()
                          [1ms] - NotificationManager.getNotificationByUserAndPage()
                          [1ms] - NotificationManager.getNotificationByUserAndSpace()
                          [0ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                          [0ms] - PermissionManager.hasPermission()
                          [1ms] - NotificationManager.getNotificationByUserAndPage()
                          [1ms] - NotificationManager.getNotificationByUserAndSpace()
                          [0ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                          [0ms] - PermissionManager.hasPermission()
                          [1ms] - NotificationManager.getNotificationByUserAndPage()
                          [1ms] - NotificationManager.getNotificationByUserAndSpace()
                          [0ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PageTemplateManager.getGlobalPageTemplates()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - UserAccessor.getPropertySet()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - UserAccessor.getPropertySet()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.isConfluenceAdministrator()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasCreatePermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                        [0ms] - SpaceManager.getLogoForSpace()
                        [0ms] - SpaceManager.getLogoForSpace()
                        [0ms] - SpaceManager.getSpace()
                        [0ms] - FormatSettingsManager.getDateFormat()
                        [0ms] - FormatSettingsManager.getDateTimeFormat()
                        [0ms] - FormatSettingsManager.getTimeFormat()
                        [0ms] - FormatSettingsManager.getDateFormat()
                        [0ms] - FormatSettingsManager.getDateTimeFormat()
                        [0ms] - FormatSettingsManager.getEditorBlogPostDate()
                        [0ms] - SpaceManager.getSpace()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - FormatSettingsManager.getDateFormat()
                        [0ms] - FormatSettingsManager.getDateTimeFormat()
                        [0ms] - FormatSettingsManager.getTimeFormat()
                        [0ms] - FormatSettingsManager.getDateFormat()
                        [0ms] - FormatSettingsManager.getDateTimeFormat()
                        [0ms] - FormatSettingsManager.getEditorBlogPostDate()
                        [0ms] - SpacePermissionManager.hasPermission()
                          [0ms] - UserAccessor.getGroup()
                          [0ms] - UserAccessor.hasMembership()
                        [0ms] - SpacePermissionManager.hasPermission()
                          [0ms] - UserAccessor.getGroup()
                          [0ms] - UserAccessor.hasMembership()
                        [0ms] - UserAccessor.getPropertySet()
                        [0ms] - SpaceManager.getSpace()
                        [1ms] - Rendering velocity template: vm/tree.vm
                        [0ms] - UserAccessor.getPropertySet()
                        [0ms] - UserAccessor.getPropertySet()
                        [1ms] - Parse: /decorators/includes/page-content-includes.vm
                          [0ms] - Parse: /template/includes/actionerrors.vm
                          [1ms] - Parse: /decorators/includes/link-to-this-page.vm
                          [0ms] - Parse: /template/includes/page-move-templates.vm
                            [0ms] - PermissionManager.hasPermission()
                          [0ms] - Parse: /template/includes/search-results-grid-templates.vm
                        [3ms] - Parse: /decorators/includes/page-metadata.vm
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - PermissionManager.hasPermission()
                          [0ms] - UserAccessor.getConfluenceUserPreferences()
                          [0ms] - FormatSettingsManager.getDateFormat()
                          [0ms] - FormatSettingsManager.getDateTimeFormat()
                          [0ms] - FormatSettingsManager.getTimeFormat()
                          [0ms] - FormatSettingsManager.getDateFormat()
                          [0ms] - FormatSettingsManager.getDateTimeFormat()
                          [0ms] - FormatSettingsManager.getEditorBlogPostDate()
                          [0ms] - Rendering velocity template: /includes/skiplinked-section.vm
                        [0ms] - UserAccessor.getPropertySet()
                        [1ms] - Parse: /com/atlassian/confluence/plugins/labels/components/labels-editor.vm
                          [1ms] - Parse: /com/atlassian/confluence/plugins/labels/components/labels-content.vm
                            [1ms] - Parse: /com/atlassian/confluence/plugins/labels/components/labels-list.vm
                        [8ms] - ApplyDecoratorDirective.render()
                          [0ms] - SpaceManager.getSpace()
                          [0ms] - UserAccessor.getPropertySet()
                          [7ms] - Rendering velocity template: /decorators/root.vmd
                            [7ms] - ApplyDecoratorDirective.render()
                              [0ms] - SpaceManager.getSpace()
                              [0ms] - UserAccessor.getPropertySet()
                              [7ms] - Rendering velocity template: /decorators/components/comments.vmd
                                [1ms] - NotificationManager.getNotificationByUserAndContent()
                                [0ms] - PermissionManager.hasCreatePermission()
                                [3ms] - Rendering velocity template: templates/quick-comment.vm
                                  [0ms] - PermissionManager.hasCreatePermission()
                                  [0ms] - UserAccessor.getPropertySet()
                                  [1ms] - UserAccessor.getUserProfilePicture()
                                  [0ms] - Rendering soy template: com.atlassian.confluence.plugins.quickedit:quick-comment-initial:Confluence.Templates.Comments.displayTopLevelCommentEditorPlaceholder.soy
                                [0ms] - PermissionManager.hasCreatePermission()
                                [0ms] - UserAccessor.getPropertySet()
                        [5ms] - Parse: /pages/page-breadcrumbs.vm
                          [4ms] - Parse: /breadcrumbs.vm
                        [7ms] - Parse: /template/includes/space-tools-web-items.vm
                          [6ms] - system.space.tools
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                            [1ms] - NotificationManager.getNotificationByUserAndSpace()
                            [0ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                            [0ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                            [0ms] - NotificationManager.getNotificationByUserAndSpace()
                            [0ms] - NotificationManager.getNotificationByUserAndSpace()
                            [1ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                            [0ms] - NotificationManager.getNotificationByUserAndSpace()
                            [0ms] - NotificationManager.getNotificationByUserAndSpaceAndType()
                            [0ms] - PermissionManager.hasPermission()
                            [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasPermission()
                        [1ms] - PageTemplateManager.getGlobalPageTemplates()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasPermission()
                        [0ms] - PermissionManager.hasCreatePermission()
                        [0ms] - PermissionManager.hasCreatePermission()
          [0ms] - UserAccessor.getPropertySet()
        [1ms] - SpaceManager.getSpace()
        [66ms] - SiteMesh: applyDecorator: main (/decorators/main.vmd)
          [64ms] - Rendering velocity template: /decorators/main.vmd
            [32ms] - Parse: /decorators/includes/header.vm
              [0ms] - UserAccessor.getUserProfilePicture()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getUserPreferences()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - PermissionManager.isConfluenceAdministrator()
              [0ms] - Rendering velocity template: templates/date-header.vm
                [0ms] - FormatSettingsManager.getDateFormat()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.isSystemAdministrator()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
                [0ms] - DefaultSpacePermissionManager.hasPermissionNoExemptions(USECONFLUENCE, anonymous, global)
                  [0ms] - UserAccessor.isDeactivated()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [1ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [1ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - SpacePermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - UserAccessor.getPropertySet()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getUserByName()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - UserAccessor.getExistingUserByKey()
              [0ms] - PermissionManager.hasPermission()
              [0ms] - PermissionManager.isConfluenceAdministrator()
              [0ms] - UserAccessor.getPropertySet()
            [0ms] - Parse: /decorators/includes/main-content-includes.vm
              [0ms] - Parse: /template/includes/global-settings.vm
            [1ms] - MessageManager.getMessages()
            [24ms] - Parse: /decorators/includes/common-header.vm
              [5ms] - Parse: /decorators/includes/aui-header-primary.vm
                [0ms] - PermissionManager.hasPermission()
                [0ms] - PermissionManager.hasPermission()
                [0ms] - PermissionManager.hasPermission()
                [0ms] - SpaceManager.getSpaces()
                [2ms] - UserAccessor.isSuperUser()
                [0ms] - SpaceManager.getSpaces()
                [0ms] - UserAccessor.isSuperUser()
                [0ms] - PermissionManager.isConfluenceAdministrator()
                [0ms] - UserAccessor.getPropertySet()
              [17ms] - Parse: /decorators/includes/aui-header-secondary.vm
                [0ms] - UserAccessor.getPropertySet()
                [0ms] - PermissionManager.isConfluenceAdministrator()
                [0ms] - PermissionManager.isConfluenceAdministrator()
                [0ms] - PermissionManager.isConfluenceAdministrator()
                [0ms] - PermissionManager.isConfluenceAdministrator()
                [0ms] - UserAccessor.getPropertySet()
                [0ms] - PermissionManager.isConfluenceAdministrator()
                [0ms] - PermissionManager.hasPermission()
                [0ms] - UserAccessor.getUserProfilePicture()
                [0ms] - PermissionManager.hasCreatePermission()
                [0ms] - SpaceManager.getPersonalSpace()
                [1ms] - SpaceManager.getPersonalSpace()
                [0ms] - PersonalInformationManager.getOrCreatePersonalInformation()
                [0ms] - PermissionManager.hasCreatePermission()
                [0ms] - PermissionManager.hasCreatePermission()
              [0ms] - Rendering soy template: com.atlassian.plugins.atlassian-nav-links-plugin:rotp-menu:navlinks.templates.appswitcher.switcher.soy
              [1ms] - Rendering soy template: com.atlassian.auiplugin:aui-experimental-soy-templates:aui.page.header.soy
            [1ms] - Rendering velocity template: /decorators/includes/footer.vm
              [1ms] - Parse: /decorators/includes/footer-content.vm
      

      Please take note that, above logs related to 5-6 links only

      Workaround

      https://confluence.atlassian.com/display/CONFKB/Slow+Page+Load+When+It+Contains+A+Lot+Of+Links

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dave@atlassian.com dave (Inactive)
              Votes:
              163 Vote for this issue
              Watchers:
              81 Start watching this issue

              Dates

                Created:
                Updated: