Identifying Slow Performing Macros
Page Profiling gives good detail on what operations are slow in a page load. In addition, you can add debug level logging:
Version 3.1 and Later
Set the package name com.atlassian.renderer.v2.components.MacroRendererComponent
to DEBUG in Administration >> Logging and Profiling.
Prior to version 3.1
Download WikiMarkupParser.class, available from the attachments to this page. This will result in logs like:
2009-04-23 10:27:54,789 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {spaces}
2009-04-23 10:27:55,768 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 979ms
2009-04-23 10:27:55,785 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {create-space-button}
2009-04-23 10:27:55,857 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 72ms
2009-04-23 10:27:55,862 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {recently-updated-dashboard:dashboard|showProfilePic=true}
2009-04-23 10:27:56,704 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 842ms
2009-04-23 10:27:56,707 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {favpages:maxResults=10}
2009-04-23 10:27:56,889 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 182ms
To add the class:
- Add this line to the file <confluence-install>/confluence/WEB-INF/classes/log4j.properties:
log4j.logger.com.atlassian.renderer=DEBUG - Add the appropriate WikiMarkupParser.class to /confluence/WEB-INF/classes/com/atlassian/renderer/v2. You'll have to make the renderer and v2 folders.
In combination with page profiling, this should give good specifics on the amount of time various plugins take. You can also use this utility to Search Confluence for Uses of a Macro.
Resolution
Experiment with the tips from the performance tuning page, or open an enhancement request about the specific macro. In some instances there is no resolution - you'll just be aware of the overhead of various macros.