【问题标题】:Looking for improve JSP Performance寻求提高 JSP 性能
【发布时间】:2015-02-19 09:37:00
【问题描述】:

我有一个使用 servlet 和 JSP 构建的项目。在那个项目中,一个 jsp 有 300 个循环来显示一个下拉列表。在那个 JSP 中,最小下拉列表是 100。但取决于数据,它可能是 1000。如果它是 100,那对我来说没问题,但如果它是 1000,那么 jsp 加载需要 3 到 4 分钟。

任何机构都可以帮助我找到任何解决方案。我希望这个 Jsp 最多只能加载 1 分钟。仅此而已。

【问题讨论】:

  • 请贴出代码。
  • 您如何获取数据以填充下拉列表?如果您在下拉列表中硬编码 1000 个条目,或者使用带有一些简单虚拟计算的循环,需要多长时间?
  • 使用ajax调用获取jsp中的下拉值

标签: java performance jsp servlets jsp-tags


【解决方案1】:

如果您有一个包含 1000 个值的 select 下拉列表,您必须遍历列表/数组并在 JSP 中生成 option 元素。有几种方法可以做到这一点,例如使用 c:forEach,但最终无法避免运行 for 循环。

看看你是否可以允许用户输入几个字符,然后使用 AJAX 加载过滤后的结果。

另外,从简单的性能角度来看,如果你正在做一些像String拆分这样的操作,你可以看看是否可以避免这些操作。此外,使用像 ArrayList(而不是 Vector)这样的非线程安全集合可能有助于提高性能。

为了提高性能,您可以尝试在单独的测试程序中执行该代码 sn-p 并对其进行优化。

如果您继承的代码有人做了一些可怕的事情,例如在 JSP 中循环通过 JDBC ResultSet,您可能需要做出决定,看看是否可以进行大量代码重构以清理页面。

【讨论】:

  • 我没有在下拉菜单中获得 1000 个值。我得到了 1000 个不同的下拉菜单。创建一个下拉菜单需要 1 秒。所以创建 1000 个不同的下拉菜单需要 1*1000 秒。但我正在寻找有助于减少时间的东西。我要泄漏 jsp 文件。我仍然在寻找有关溢出文件的帮助。
  • 最多包含 20 个项目。这里的项目没有问题。要创建一个下拉列表,我检查了很多条件,将近 300 个条件,因此构建需要时间。
  • 从 JSP 代码生成 50,000 行 HTML 几乎不需要 10 秒。我的猜测是您的“逻辑”代码是瓶颈。你能简化逻辑吗?逻辑代码是否可能存在其他正常的 Java 性能问题?
  • 为什么要在同一页面上有 1000 个不同的下拉菜单?
猜你喜欢
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多