我可以使用哪些技术来修改一组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%> -->
但问题是:
答案 0 :(得分:5)
#1 - 黄金法则 - 不要在JSP中放置任何逻辑。写自定义标签。将任何逻辑提取到java代码中。 JSP是表示层。
#2 - 在分析器中运行servlet容器(比如jvisualvm甚至更好:yourkit)。这将告诉您确切的时间花在哪里
注意 - 现在您不需要“在分析器中运行应用程序” - 如果使用JDK6 +,您可以弹出yourkit或jvisualvm(随JDK一起提供)并在运行时神奇地附加。这真的很方便。