This week's book giveaway is in the Programmer Certification forum. We're giving away four copies of OCP Oracle Certified Professional Java SE 11 Programmer I Study Guide: Exam 1Z0-815 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
One of the concerns that I have with frameworks is on the issue of performance and scalability of serverside applications. Does this book address only the issues of how to use, or does it demonstrate methods that can boost throughput?
May be am wrong. But my understanding is that Spring is just a wrapper on top of other frameworks. For eg Spring does'nt provide its own persistance solution. But it makes it easy for you to work with various persistance solutions out there like hibernate, jdo implementation, ojb etc. So i guess Spring by itself might not be the bottleneck. You need to understand the underlying mechanism that you are employing and would need to tune that. But yeah Spring has its own MVC. I dont have much idea of how it performs when compared to other frameworks out there.
In my experience, the MVC framework you use has rather insignificant part to play in your application's performance. Most problems tend to crop up in the persistence layer.
Having said that, Spring's AOP framework gives you a lot of power and you can easily shoot yourself with that power if you're not careful (e.g. accidentally logging a couple of hundred method calls per request could be a slight performance drain...).
You mean performance hit as a result of using proxy / cglib? AOP abuse is one. Is there usually a huge difference between implementing logging (or for that matter security, transactions etc) using direct calls than by using proxies?
posted 14 years ago
Originally posted by Karthik Guru: You mean performance hit as a result of using proxy / cglib? AOP abuse is one. Is there usually a huge difference between implementing logging (or for that matter security, transactions etc) using direct calls than by using proxies?
I was referring to the fact that you can easily make a little mistake and accidentally cause a lot more activity inside the framework than you intended to. Another possible performance killer can be the use of dynamic pointcuts which decide at runtime whether a given advice should be applied to the pointcut. Craig and Ryan estimated in "Spring in Action" that a dynamic pointcut takes 5 to 10 times more time to execute compared to a static pointcut.
Wherever it is applicable yes we do. Typically this in the AOP stuff, where Spring has a lot interaction. In other areas, Spring is just a thin wrapper around other frameworks and adds negligible overhead to the application.
If you settle for what they are giving you, you deserve what you get. Fight for this tiny ad!