在应用程序上执行性能测试的要点

时间:2011-06-13 06:32:03

标签: java performance oracle hibernate

在Java中使用Hibenate作为ORM工具和Oracle 11G作为数据库的应用程序执行性能测试时,可能会有什么要点。

我也在考虑对应用程序进行基准测试。所以我应该怎么做。

由于

5 个答案:

答案 0 :(得分:1)

关键是:

1)尽可能使用真实世界的使用场景测试应用程序 - 这在实践中可能相当复杂 - 我使用了基于www :: mechanize和http :: recorder for this的Perl脚本过去。

2)ab或jmeter失败

3)尽可能记录(你没有提到你正在使用的网络服务器 - 如果是apache,在日志中添加%D)

4)确保你让系统饱和 - 你想确保你得到一些主要的垃圾收集(或证明它的同质性 - 这对于Java程序来说是非常罕见的事情)

5)分析网络服务器和gc日志。

答案 1 :(得分:1)

首先要做的是同意什么是可接受的表现。没有这个协议,其他任何事情都为时过早。

不同的应用类型会有不同的痛点。混合读写,并发更新(特别是在相同数据上 - 例如销售音乐会门票或飞机座位),数据量。

答案 2 :(得分:1)

不确定您的应用程序“使用Oracle 11G作为数据库”的程度,甚至不确定您使用的是什么类型的环境(我假设典型的oltp),但是从Oracle方面您可以做几件事(仅举几例):< / p>

  1. 从整体数据库角度来看,查看AWR(Automatic Workload Repository,以前的statspack)。我相信这也是内置于企业管理器中的。
  2. SQL Trace + tkprof
  3. 如果使用任何pl / sql,DBMS_HPROF(分层探查器)。
  4. 如果使用任何pl / sql,请记录重要操作以记录表(通过自治事务),记录每个条目的时间戳,采取的操作等。滚动自己或使用现有框架(有几个)。只需确保其灵活(可以更改日志输出级别)。

答案 3 :(得分:0)

让Hibernate记录所有已执行的SQL。

检查this link的配置属性并将hibernate.show_sql设置为true。一旦你可以看到正在执行的是什么,检查任何不寻常的陈述并在你怀疑它们比预期慢的情况下对它们进行分析。

之后检查他们的执行计划并将其调整为更优化将有助于您的应用程序和数据库。

答案 4 :(得分:0)

不确定使用不同的技术(例如您的Hibernate)会改变您执行应用程序性能测试的方式。

有运行性能测试的标准工具,它们也适用于您的应用程序使用的技术。

使show_sql为true肯定有助于查看查询并进一步分析它们,但可能对您的应用程序的整体性能测试没有帮助。

请查看以下帖子Java benchmarking tool以获取基准测试工具。

希望这有帮助。