Java 如何在cq5中从服务器端获取页面每个组件的加载时间
如何从服务器端获取CQ5中页面的每个组件的加载时间 根据我的实现,从request.log文件加载页面所需的时间最长。但我需要从服务器端获取页面的每个组件加载时间 我找到了此链接,但这将在客户端起作用:Java 如何在cq5中从服务器端获取页面每个组件的加载时间,java,aem,Java,Aem,如何从服务器端获取CQ5中页面的每个组件的加载时间 根据我的实现,从request.log文件加载页面所需的时间最长。但我需要从服务器端获取页面的每个组件加载时间 我找到了此链接,但这将在客户端起作用: 您必须为每个组件标记类调用包含记录器,并为调用的进入和退出提供秒表 Logger LOG = LoggerFactory.getLogger(classname.class); StopWatch stopWatch = new StopWatch("new"); stopWatch.start
您必须为每个组件标记类调用包含记录器,并为调用的进入和退出提供秒表
Logger LOG = LoggerFactory.getLogger(classname.class);
StopWatch stopWatch = new StopWatch("new");
stopWatch.start();
stopWatch.stop();
一旦将其包含在标记类中,就可以找到特定页面中每个组件所用的时间。
您可以使用putty访问服务器日志。从AEM 6.0版开始,有OOTB功能可以测量页面上每个组件的呈现时间 它可以通过TouchUI(开发人员模式)访问
但是,如果AEM以运行模式“nosamplecontent”安装,它将不起作用。您可以使用
RequestProgressTracker
,如中所述
可从以下地址获得。为了获得组件的计时统计信息,您可以在每个请求上使用来执行代码
每当调用过滤器时:
RequestProgressTracker
getMessages
获取当前请求的请求进度消息集合的迭代器字符串使用,因此您需要对其进行解析以获取数据
TIMER_END{103,/libs/sling/servlet/default/explorer/node.esp#0}
数字103
是脚本执行所用的毫秒数。逗号后的值就是脚本。您可以定制一个正则表达式,以便从每个这样的消息中提取这两个值
我最近参与的一个项目使用这种方法来报告组件性能。我们在NewRelic中有一个整洁的仪表板,在我们构建的每个组件上都有实时统计数据