|
Re: How Early Should You Test for Performance?
|
Posted: Dec 8, 2006 6:53 AM
|
|
Hi, > I am surprised by how religious many of the responses to > the original post are. It seems that whenever someone > mentions design-time consideration of performance issues > that another person will knee reply with the "premature > opmization is the root of all evil." > > I think this is an oversimplification.
Agreed.
> > One of the things I enjoy about code profiling or load > testing is how frequently it uncovers functional errors or > identifies the difference between how the code actually > works and how it is believed to work. > > My experience suggests that the real sin that underlies > the "premature optimization" quote is in fact > "wrong-headed misunderstandings and attachment to > performance myths is the root of all evil." I know that > when I look at a new code-base there is a better than 50% > chance that any code labelled > "fast","cache","queue","pool" is a probable performance > hole. The creation of these performance holes isn't > premature optimization it's naive, ineffective attempts at > optimization programming. Agreed, again.
> > It is an unrealistic cop-out to pretend that we can defer > performance issues to the end of a project. Every minor > architectural decision will have a performance dimension > to it. If those decisions are made in the presnece of > better data then we will get better decisions. There is no > downside to architects/developers knowing more about an > applications dynamic behavior. Logging performance metrics > at the beginning of a dev cycle could improve > architectural quality.
Very well said. In fact in case an early design decision cause a performance problem if a you are near the end of your project it can become impossible to revert that design decision.
I also found that in large scale java applications, it becomes difficult to find problems at the end, because the tools (profilers) available today cannot just handle the amount of data. Finding a problem in some basic data structure on a huge application server can be several times more costly, then just running a simple enhanced junit tests that spits out performance relevant data.
Regards, Markus(http://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/u/6389)
|
|