4

我可以使用哪些技术来修改一组 JSP 以测量 JSP 的整体性能,然后进一步缩小和确定 JSP 中花费最多时间的特定区域?

我目前的方法是简单地使用 scriptlet 和 System.currentTimeMillis():

JSP 顶部

<%
StringBuilder result = new StringBuilder();
long startTime = System.currentTimeMillis();
%>

... JSP 代码在这里

<%
long duration = System.currentTimeMillis() - startTime;
if (duration > 100L) { //over  100 ms
    result.append("JSP page took "+duration+"ms");
}
%>
<!-- <%=result%> -->

但是这样做的问题是:

  • 使用此性能代码污染的 JSP,
  • 在多个 JSP 中复制粘贴的代码,
  • 当 JSP 包含在 <%@ include ... %> 中时效果不佳,因为结果变量已在多个 JSP 中定义。
4

1 回答 1

5

#1 - 黄金法则 - 不要在 JSP 中添加任何逻辑。编写自定义标签。将任何逻辑提取到java代码中。JSP 是表示层。

#2 - 在分析器中运行 servlet 容器(如 jvisualvm 甚至更好:yourkit)。这将告诉您确切的时间花在哪里

注意 - 现在你不需要“在分析器中运行应用程序” - 如果使用 JDK6+,你可以弹出打开 yourkit 或 jvisualvm(JDK 附带)并在它运行时神奇地附加。这真的很方便。

于 2012-05-04T16:54:36.773 回答