【问题标题】:What is the best technique to find the root cause of a slow JSP?找到慢速 JSP 的根本原因的最佳技术是什么?
【发布时间】:2012-05-14 05:50:01
【问题描述】:

我可以使用哪些技术来修改一组 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 包含在 中时效果不佳,因为结果变量已在多个 JSP 中定义。

【问题讨论】:

  • 如果您使用的是 Eclipse,则有分析工具。
  • ...除非您在 MacOS 上使用 Eclipse,否则没有 :-(

标签: java jsp jakarta-ee


【解决方案1】:

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

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

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

【讨论】:

  • 这些是一些很棒的技巧。我应该在问题中说,仅在附加到真实数据时性能会变慢,本地开发环境往往缺乏这一点,并且很难在本地进行分析,因为仅附加到虚假或琐碎的数据集时似乎很快。我确实计划尝试这些建议,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多