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

问题描述

| 在使用Hibenate作为ORM工具和Oracle 11G作为数据库的Java应用程序上执行性能测试时,可能要指出的重点是什么。 我也在考虑对应用程序进行基准测试。因此,我该怎么办。 谢谢     

解决方法

        关键的事情是: 1)就使用实际使用场景进行应用程序的实际测试而言-在实践中这可能相当复杂-过去,我为此使用基于www :: mechanize和http :: recorder的Perl脚本。 2)未能通过AB或JMeter 3)尽可能多地记录(您不提及正在使用的Web服务器-如果是Apache,则在日志中添加%D) 4)确保您的系统已饱和-您要确保获得一些主要的垃圾回收(或证明其具有同质性-这对于Java程序来说非常罕见) 5)分析Web服务器和gc日志。     ,        首先要达成共识的是可接受的性能。没有该协议,其他任何事情都为时过早。 不同的应用程序类型将具有不同的痛点。读写混合,并发更新(尤其是在相同数据上,例如出售音乐会门票或飞机座位),数据量。     ,        不知道您的应用程序“将Oracle 11G作为数据库使用”的程度,甚至不确定您所拥有的环境的类型(我假设是典型的oltp),但是不确定从Oracle方面您可以做几件事(仅举几例): 从总体数据库角度来看,请看一下AWR(自动工作负载存储库,以前是statspack)。我相信这也是内置在企业管理器中的。 SQL跟踪+ tkprof。 如果使用任何pl / sql,则为DBMS_HPROF(分层探查器)。 如果使用任何pl / sql,则将重要的操作记录到日志表中(通过自主事务),记录每个条目的时间戳记,采取的操作等。自己动手或使用现有的框架(那里有多个框架)。只要确保其灵活(可以更改日志记录输出的级别)即可。     ,        让Hibernate记录所有已执行的SQL。 检查此链接以获取配置属性,并将“ 0”设置为true。一旦您看到正在执行的内容,请检查所有异常语句并分析它们,以防它们比预期的要慢。 然后检查它们的执行计划并进行调整以使其更优化,这将有助于您的应用程序和数据库。     ,        不确定使用其他技术(例如您的情况下为Hibernate)是否会改变执行应用程序性能测试的方式。 有一些标准工具可以运行性能测试,它们也应与您的应用程序所使用的技术一起适用。 将show_sql设置为true肯定会有助于查看查询并进一步分析它们,但可能无助于应用程序的整体性能测试。 查看以下用于基准测试工具的Java基准测试工具。 希望这可以帮助。