M.J.
M.J.

Reputation: 16646

points for executing performance tests on an application

What can be the pin points when executing performance test on an application in Java, which uses Hibenate as ORM Tool and Oracle 11G as database.

I am also thinking of bench-marking the applcation. So for that what should i do.

Thanks

Upvotes: 0

Views: 103

Answers (5)

tbone
tbone

Reputation: 15473

Not sure to what extent your app "uses Oracle 11G as database" or even what type of environment you have (i assume typical oltp), but from the Oracle side you can do several things (to name a few):

  1. From an overall db standpoint, look into AWR (Automatic Workload Repository, formerly statspack). I believe this is built into Enterprise Manager as well.
  2. SQL Trace + tkprof.
  3. If using any pl/sql, DBMS_HPROF (Hierarchical profiler).
  4. If using any pl/sql, log significant actions to log tables (via autonomous transactions), recording timestamps of each entry, action taken, etc. Roll your own or use an existing framework (there are several out there). Just make sure its flexible (can change level of logging output).

Upvotes: 1

Gary Myers
Gary Myers

Reputation: 35401

The first place to start is to agree what is acceptable performance. Without that agreement, anything else is premature.

Different application types will have different pain points. Mix of read and writes, concurrent updates (especially on the same data - eg selling concert tickets or airplane seats), data volumes.

Upvotes: 1

symcbean
symcbean

Reputation: 48357

The key things are:

1) as far as practical test the application using real-world usage scenarios - this can be rather complicated in practice - I've used Perl scripts based on www::mechanize and http::recorder for this in the past.

2) failing that ab or jmeter

3) record as mauch as possible (you don't mention what webserver you are using - if its apache, add %D in the logs)

4) make sure you saturate the system - you want to make sure you're getting some major garbage collections (or prove its homoeostatic - which is a very rare thing for a Java program)

5) analyse the webserver and gc logs.

Upvotes: 1

Sandeep Jindal
Sandeep Jindal

Reputation: 15338

Not sure if using different technologies (e.g. Hibernate in your case) would change the way you would perform the performance test of an application.

There are standrard tools to run the performance test and they should be applicable with the technologies being used by your application too.

Making show_sql true would definitely help in looking at the queries and analyzing them further, but may not help in overall performance test of you application.

Look at the following post Java benchmarking tool for benchmarking tools.

Hope this helps.

Upvotes: 0

darioo
darioo

Reputation: 47183

Have Hibernate log all executed SQL.

Check this link for configuration properties and set hibernate.show_sql to true. Once you can see what's being executed, check any unusual statements and profile them if you suspect they're slower than expected.

Afterwards checking their execution plan and tweaking them to be more optimized will help your application, and your database.

Upvotes: 0

Related Questions