Confluence 6 识别慢性能的宏
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: 979ms2009-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: 72ms2009-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: 842ms2009-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 |
希望添加类:
- 添加下面的行到文件 <confluence-install>/confluence/WEB-INF/classes/log4j.properties 中:
log4j.logger.com.atlassian.renderer=DEBUG - 添加正确的 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 识别慢性能的宏的更多相关文章
- Confluence 6 识别系统属性
Confluence 支持一些可以从 Java 系统属性中配置的配置参数和调试(debugging )设置.系统属性通常是使用 -D 为参数选项,这个选项是 Confluence 在运行后设置到 JV ...
- Confluence 6 自定义 Decorator 模板的宏和针对高级用户
宏 页面的某些部分使用的是 Velocity 宏进行创建的,包括导航栏.有关宏的创建,你可以参考页面 Working With Decorator Macros 页面中的内容. 针对高级用户 vel ...
- Confluence 6 空间中的常用宏
小组空间(Team Spaces): 介绍小组:User Profile Macro 将会对 Confluence 的用户显示属性的简单摘要,属性照片,联系方式. 在你小组中分享通知和新闻:The B ...
- Confluence 6 编辑和删除用户宏
编辑一个用户宏 希望对一个用户宏进行编辑: 进入 > 基本配置(General Configuration) > 用户宏(User Macros) 在相关的宏的边上,单击 编辑(Edit ...
- Confluence 使用常见问题列表
Confluence 6 管理 Atlassian 提供的 App 摘要: Confluence 用户可以使用桌面应用来编辑一个已经上传到 Confluence 的文件,然后这个文件自动保存回 Con ...
- Confluence 6 在你用户宏中使用参数
你可以为你的用户宏指定参数.这样的话,用户可以使用参数来决定 Confluence 页面的显示情况. 如何在 Confluence 页面中使用你的宏参数 当添加一个宏到 Confluence 页面中的 ...
- VC中预处理指令与宏定义详解
刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具.使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能. 一个 ...
- MFC原理第三讲.RTTI运行时类型识别
MFC原理第三讲.RTTI运行时类型识别 一丶什么是RTTI RTTI. 运行时的时候类型的识别. 运行时类型信息程序.能够使用基类(父类)指针 或者引用 来检查这些指针或者引用所指的对象. 实际派生 ...
- 《InsideUE4》UObject(二)类型系统概述
曾子曰:吾日三省吾身--为人谋而不忠乎?与朋友交而不信乎?传不习乎? 引言 上一篇我们谈到了在游戏引擎,或者在程序和高级编程语言中,设计一个统一对象模型得到的好处,和要付出的代价,以及在UE里是怎么对 ...
随机推荐
- Shiro入门 - 通过自定义Realm连数数据库进行认证(md5+salt形式)
shiro-realm-md5.ini [main] #定义凭证匹配器 credentialsMatcher=org.apache.shiro.authc.credential.HashedCrede ...
- L3-020 至多删三个字符 (30 分)(DP)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805046946938880 学习地址: 2018CCCC-L3 ...
- Android小知识汇总
1.Android Studio 将module编译打包成aar文件,module依赖的 (例如 compile 'com.zhy:autolayout:1.4.3' )不会被打包进入aar文件,应用 ...
- Builder搭建外置服务器
如何利用HBuilder快速设置外部web服务器来测试移动web HBuilder 关于HBuilder工具的简介:HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开 ...
- vue 学习笔记—路由篇
一.关于三种路由 动态路由 就是path:good/:ops 这种 用 $route.params接收 <router-link>是用来跳转 <router-view> ...
- Workbook导出excel封装的工具类
在实际中导出excel非常常见,于是自己封装了一个导出数据到excel的工具类,先附上代码,最后会写出实例和解释.支持03和07两个版本的 excel. HSSF导出的是xls的excel,XSSF导 ...
- C++ std::pair的用法
1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数需要返回2个数据的时候, ...
- 20165325 2017-2018-2 《Java程序设计》 第八周学习总结
一.教材学习笔记 ch12 1.程序是一段静态的代码,进程是程序的一次动态执行过程 2.线程比进程还小,一个进程的进行期间可以产生多个线程. 3.Java内置对多线程的支持.我们的计算机在任何给定说的 ...
- 【转】Python 3的pathlib模块:驯服文件系统
[转]Python 3的pathlib模块:驯服文件系统 https://python.freelycode.com/contribution/detail/1248 Python部落(python. ...
- FAT文件系统规范v1.03学习笔记---4.文件和目录数据区之长目录项
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...