Page Profiling 给你了有关页面在载入的时候操作缓慢的邪教,你可以将下面的内容添加到调试(debug)级别:

Version 3.1 及其后续版本

设置包名字为 com.atlassian.renderer.v2.components.MacroRendererComponent 到 DEBUG 级别。你可以在 管理(Administration) >> Logging and Profiling 中进行设置。

3.1 之前的版本

下载 WikiMarkupParser.class,你可以在 attachments to this page 页面中找到,生成的日志结果如下:

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

希望添加类:

  1. 添加下面的行到文件 <confluence-install>/confluence/WEB-INF/classes/log4j.properties 中:
    log4j.logger.com.atlassian.renderer=DEBUG
  2. 添加正确的 WikiMarkupParser.class 到 /confluence/WEB-INF/classes/com/atlassian/renderer/v2。你需要手动创建 renderer 和 v2 文件夹。

在页面属性合并中,这个配置应该能够给你在页面载入的时候那些插件消耗了最多的世界。你也可以使用这个工具来找到你的 Confluence 使用了那些宏: How to Search Confluence for Uses of a Macro

结论

结合 performance tuning 页面中提供的技巧,或者打开指定宏的提高请求。在一些情况下,可能没有系统性能的结论 —— 你需要避免对过多的宏进行日志。

 

Confluence 6 识别慢性能的宏的更多相关文章

  1. Confluence 6 识别系统属性

    Confluence 支持一些可以从 Java 系统属性中配置的配置参数和调试(debugging )设置.系统属性通常是使用 -D 为参数选项,这个选项是 Confluence 在运行后设置到 JV ...

  2. Confluence 6 自定义 Decorator 模板的宏和针对高级用户

    宏 页面的某些部分使用的是 Velocity  宏进行创建的,包括导航栏.有关宏的创建,你可以参考页面 Working With Decorator Macros 页面中的内容. 针对高级用户 vel ...

  3. Confluence 6 空间中的常用宏

    小组空间(Team Spaces): 介绍小组:User Profile Macro 将会对 Confluence 的用户显示属性的简单摘要,属性照片,联系方式. 在你小组中分享通知和新闻:The B ...

  4. Confluence 6 编辑和删除用户宏

    编辑一个用户宏 希望对一个用户宏进行编辑: 进入  > 基本配置(General Configuration) > 用户宏(User Macros) 在相关的宏的边上,单击 编辑(Edit ...

  5. Confluence 使用常见问题列表

    Confluence 6 管理 Atlassian 提供的 App 摘要: Confluence 用户可以使用桌面应用来编辑一个已经上传到 Confluence 的文件,然后这个文件自动保存回 Con ...

  6. Confluence 6 在你用户宏中使用参数

    你可以为你的用户宏指定参数.这样的话,用户可以使用参数来决定 Confluence 页面的显示情况. 如何在 Confluence 页面中使用你的宏参数 当添加一个宏到 Confluence 页面中的 ...

  7. VC中预处理指令与宏定义详解

    刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具.使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能. 一个 ...

  8. MFC原理第三讲.RTTI运行时类型识别

    MFC原理第三讲.RTTI运行时类型识别 一丶什么是RTTI RTTI. 运行时的时候类型的识别. 运行时类型信息程序.能够使用基类(父类)指针 或者引用 来检查这些指针或者引用所指的对象. 实际派生 ...

  9. 《InsideUE4》UObject(二)类型系统概述

    曾子曰:吾日三省吾身--为人谋而不忠乎?与朋友交而不信乎?传不习乎? 引言 上一篇我们谈到了在游戏引擎,或者在程序和高级编程语言中,设计一个统一对象模型得到的好处,和要付出的代价,以及在UE里是怎么对 ...

随机推荐

  1. 使用PHP+MySql操作——实现微信投票功能

    1. 投票主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  2. 百度地图web api使用案例

    效果如下: 1.获取位置的经纬度: 如坐标:114.110033,22.541098 获取经纬度: http://api.map.baidu.com/lbsapi/getpoint/index.htm ...

  3. flask的基础认识

    刚开始学习flask基础知识,有了一点点的认识,所以在此大概写一下自己的理解,详细步骤和功能在代码段介绍: from flask import Flask,render_template,reques ...

  4. 多项式乘法(FFT)学习笔记

    ------------------------------------------本文只探讨多项式乘法(FFT)在信息学中的应用如有错误或不明欢迎指出或提问,在此不胜感激 多项式 1.系数表示法  ...

  5. Tip:什么是JavaBean

    可视化JavaBean  非可视化JavaBean(分:值JavaBean和工具JavaBean) JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参 ...

  6. Anaconda使用总结

    序 Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候.为了解决这些问题,有不少发行版的Python,比如WinPython.An ...

  7. Python笔记 【无序】 【二】

    序列list() ——把一个可迭代对象[可以是字符串,元组]转化为列表,可不带参数——生成空列表,或者带一个迭代器作为参数tuple() ——可迭代对象转化为元组str(obj) ——把obj对象转换 ...

  8. python3编码(encode,decode)

    python3默认编码为unicode,由str类型进行表示.二进制数据使用byte类型表示. 字符串通过编码转换成字节码,字节码通过解码成为字符串 encode:str --> bytes d ...

  9. Python-有关文件操作,函数调用几道练习:

    1.写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作 2.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数 3.写函数,判断用户传入的对象(字符串. ...

  10. Node.js WEB服务器(1)——编写简单的HTTP服务器

    基于分而治之的思想,很多架构都会采用分层的模式来处理某类应用.Node.js在Web开发上也是采用这种模式,分别提供了如下的三个层: Node核心 社区模块 应用逻辑 下面是一个最简形式的web服务器 ...