java Saas产品很慢

时间:2011-12-07 08:54:08

标签: java spring java-ee

我正在使用 Spring 3 框架开发基于SAAS的java产品,并使用 hibernate 和注释。

该网站非常慢。我使用 ApacheTomcat服务器6.0.26

有人可以告诉我应该做出哪些更改?

提前致谢!

1 个答案:

答案 0 :(得分:1)

可能有多种原因,但我怀疑Apache与它有什么关系。 可能的原因包括:

  • 未经优化的查询
  • 数据库表没有需要的索引
  • 您的数据库服务器硬件是废话
  • 您的算法和数据结构选择不好
  • 您正在多次调用数据库(请求数据,即使它已在前一个屏幕上加载等等。)
  • 您的数据库配置和缓存可能是错误的
  • 您的前端技术可能存在问题(JSF与JSP相比较慢)

你应该做的第一件事是弄清楚每页渲染花在查询数据库上的时间,应用服务器上花多少时间。您还应记录每个渲染执行的查询数(以及哪些查询)。然后从时间上减去这两次以在客户端加载页面,第三次是将页面输出到客户端并在浏览器上呈现页面的时间。

如果单个查询在数据库中花费的时间很长,那么使用数据库分析器查看数据库执行长表扫描的位置并在那里设置索引。如果查询返回了大量数据但您只是使用了一些数据,请尝试编写更具体的查询。如果您因为查询数量而在DB中花费大量时间,请尝试通过缓存或重用应用程序服务器上的数据来减少查询数量。 如果应用服务器花费的时间似乎是问题,您可能需要重新考虑您的算法和设计选择。

如果在第三部分花费了大量时间 - 在客户端上传输和渲染它,请尝试使用静态内容,CDN等上的过期标头优化javascript ... 下载并安装YSlow插件并使用它来测试您的页面并遵循其建议。