2011-09-23 77 views
2

有没有最佳实践如何提高春季webapps的性能?如何提高Spring MVC性能?

我对静态内容使用ehcache,尝试在我的应用程序的末尾加载JavaScript,但该应用程序无法顺利运行。只需要简单的注册GET请求来映射网址,并在7秒内初始化session和bean lastet。

当然,你可以为特定的优化很多,但我想知道有关generell性能问题以及如何处理这些问题。

模式,最佳实践等在这里都非常欢迎。

+2

http://developer.yahoo.com/performance/rules.html –

回答

5

在一般情况下,我建议:

  • 搭建测试环境,在那里你可以执行应用程序和 获得在里面
  • 写重复的性能测试脚本,重点都在绝对性能(例如“多久才能呈现此页面“)和大规模性能(例如”性能如何在负载下降级?“)
  • 将探查器粘贴到您的测试环境中。我从事Java应用程序已经有一段时间了,但有很多可用的。
  • 运行性能测试,同时运行您的分析器。弄清楚什么是瓶颈。修复瓶颈。冲洗。重复。

我通常建议不要让测试设备类似地指定为生产,因为它使得创建足够的负载来强调系统非常困难。这也很昂贵。

如果您有一个“类似生产”的环境进行测试,现在就做 - 理想情况下,您将得到与测试环境类似的结果,但并非总是如此;如果可能的话,安装轮廓仪并查看瓶颈位置。

完成此操作后,可以将优化的应用程序部署到您的生产环境。

+1

+1。性能测试应该让架构师对开发者进行单元测试。先写,始终运行。也同意没有必要有一个完整的生产拷贝来进行测试,“类似生产”就足够了。重点是它应该是一致的,你有兴趣测试三角洲,每个变化的相对性能影响。 – pap

+0

Visualvm是一个很棒的java应用程序分析工具。 –

5

创建性能测试(如使用jmeter)。使用全面的探查器或仪器来分析您的应用程序。如果您使用的是spring(和弹簧配置的数据源),我很喜欢javamelody这是一个简单的插件,可以测试和编译应用程序的性能统计信息。

运行测试,检查分析信息,找出瓶颈,优化最差的违规者。重复,直到满意。

Spring MVC没有内在的性能问题。性能问题来自其他领域。糟糕的SQL查询,缓慢的外部整合,JSTL在你浏览过程中的过度疯狂等等。

0

VisualVM对于分析非常有用。可以从link下载。内存池和Visual GC插件,这些插件默认情况下不会安装,这对监视内存使用情况和GC活动也很有用。