• Post Reply Bookmark Topic Watch Topic
  • New Topic

High Performance with Java and Oracle database

 
Venkat Sadasivam
Ranch Hand
Posts: 139
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, I am using Java EE and Oracle database to develop a web based application. When I run my application performance on my localhost is slower than accessing gmail/yahoo email account. Can you please share your experience to improve the performance in terms of hardware and software design.

FYI. We have followed almost all the best practices of Java performance tuning tips.
 
Vinod K Singh
Ranch Hand
Posts: 198
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One need to measure the performance of the application and database separately to pin-point the exact cause of poor performance. Also discard the excessive time taken during first invocation of a servlet and/or jsp as server will take some time in compiling (jsp) and loading the necessary classes, these steps are required just once.

Comparison with Yahoo / GMail with your own application is not a right measure as in case of these service provider it is just the browser which takes resources from the local machine while in case of local machine everything is fighting for the limited resources available.
 
Venkat Sadasivam
Ranch Hand
Posts: 139
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
While posting this question I feared that I don't want to see answers like Vinod's one. That is the reason I explicitly mentioned as all the best practices are followed.

ok. I will try to put my question in different way.

If I have to develop a free web based email service.
a) Is Oracle a good database to handle large volumes?
b) Is Java right choice for high transaction application?
c) What is the kind of App Server do I need?
d) What is the kind of hardware is required?
 
Vinod K Singh
Ranch Hand
Posts: 198
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Venkat Sadasivam:
FYI. We have followed almost all the best practices of Java performance tuning tips.


Performance tuning is very subjective to the application and environment and this statement does not tell others what best practices were followed. Also before doing any tuning one needs to know the gray areas. Hope you found out the bottlenecks in your application and tuned them appropriately.

Originally posted by Venkat Sadasivam:
While posting this question I feared that I don't want to see answers like Vinod's one. That is the reason I explicitly mentioned as all the best practices are followed.

ok. I will try to put my question in different way.

If I have to develop a free web based email service.
a) Is Oracle a good database to handle large volumes?
b) Is Java right choice for high transaction application?
c) What is the kind of App Server do I need?
d) What is the kind of hardware is required?


My opinion to your questions-
a) Yes, though MySQL and other DBs are also capable of handling large volumes.
b) Yes, but it is not the only thing to build high performance apps. There are many other technologies, which can be used along with Java.
c) Depends, even Tomcat and Jetty perform pretty well under heavy loads.
d) Depends, I am afraid there is no straight forward answer to this question.
 
Pat Farrell
Rancher
Posts: 4678
7
Linux Mac OS X VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You will find that Java's performance is not important in applications such as you describe. The real processing loop in the application looks like:



Without real information on the number of simultaneous users, size of database, etc. its impossible to even make grounded guesses as to what hardware you need. Even if you have the information, its nearly valueless.

For any sort of serious web application, you would want to deploy it on a quad processor system with many gigs of RAM, fast disks, etc. And as soon as it got slow, your first step would be to put the DBMS package on a separate machine, so that the front end had only JBoss/Tomcat, and your application. When that gets too slow, you would spilt the front end stuff, and have a middle tier machine with the domain application. From there, its all box scalable until you get eight to ten boxes of each flavor.

Once you get that big, you will have money to do real engineering, and you will need it.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!