2011-06-14 56 views
0

如何提高应用程序的性能?我的应用程序是用Java,Hibernate,Servlets,Wsdl编写的,我用于Web服务。我已经在linux机器上执行了一些测试,以便我可以获得适当的执行TPS。如何提高应用程序的性能

但仍然,我不满意的表现。

因此,为此,我应该尝试提高性能的所有步骤。

加入到上面,我已经执行了代码覆盖率,并且在代码中突出显示了每个测试和每个服务的写入错误。

个人建议被邀请。

谢谢。

+0

那么,如果你对表现不满意,你是否试图找出它不理想的地方。恐怕你的陈述就像咆哮一样。 – 2011-06-14 10:50:35

+0

你究竟做了什么来衡量表现?是否有任何特定的性能问题要解决?你的应用程序到底做了什么? – abalogh 2011-06-14 10:52:31

回答

3

配置您的应用程序,并删除所有瓶颈。根据您的理解,另外或更好的方法,请花上一两天时间,然后从Java Performance Tuning的新闻稿中阅读尽可能多的内容。

0

是否与磁盘I/O或网络I/O相关的性能?在高吞吐量系统中(从数据库角度来看)Hibernate可能不是最好的选择。如果你有很多写操作,我建议你使用不同的机制来写入数据库 - 也许简单地切换到简单的JDBC可能会加速它?其次,你的web服务是否花了很长时间才能得到结果? SOAP并不是最快的协议 - 你是否看过像REST可能与JSON相结合的东西?

+0

对于服务执行流程的servlet,我只使用JSON。当其他系统调用我的某些服务时,我正在使用wsdl。 – 2011-06-14 11:13:56

+0

并且您是否测量了每个请求的JSON或WSDL的网络行程? – Liv 2011-06-14 11:14:55

+0

网络,如我在JSON中已经弄清楚的那样,但我们如何测量WSDL? – 2011-06-14 11:30:01

1

您应该使用VisualVM,JProfiler等工具监视您的应用程序以确定性能瓶颈。调整应用程序而不知道实际性能问题的位置是没有意义的。

在专业环境中,我建议dynaTrace可以显示执行路径上的性能瓶颈。该工具可以准确显示应用程序在哪里花费时间。

+0

我已经使用VisualVm来弄清楚,每个关键服务和数据库命中需要多少时间。有了这些统计数据,我可以说我对服务感到满意,但对数据库命中感到不满。 – 2011-06-14 11:12:43

+0

至少你发现了什么调整。数据库调优指南适用于所有主要数据库。有时创建一个缺失的索引足以解决问题。 – Daniel 2011-06-14 13:02:08

+0

例如,[http://stackoverflow.com/questions/2980359/web-page-database-query-optimization](http://stackoverflow.com/questions/2980359/web-page-database-query-optimization)包括一些减少命中数的建议。一般来说,我建议将缓存作为减少数据库命中数的一种好方法。 – s106mo 2011-06-14 19:34:14

相关问题