Wednesday, June 17, 2009

How To Optimize Performance (or how to do Performance Testing right)

Optimizing performance requires you to performance test.

I'm just going to say it - performance testing is hard. Really hard.

Ask anyone that's done it before, and they will agree. If you haven't done it before, well, yeah, sorry. It's not easy. But you've got to do it anyway - because the most important thing you will do as a software engineer is performance test. It's a bit like when your Dad told you "when you grow up to be my age <insert age old wisdom here>" and you didn't believe him?

And now you're old enough that you realize, hey, the guy might have had a point?

Yeah, trust me. Performance testing is both the hardest, and most important, thing you will ever do in your software engineering career. Get it right - you'll be a rockstar. Don't do it - well, I promise you, you'll always be griping about why the amazing software you write is never actually used for "production" apps.

So here you go, simple steps to performance engineering:

1) Set goals - what are you trying to accomplish
2) Measure a baseline
3) Identify a bottleneck
4) Fix said bottleneck
5) Repeat until you meet your performance goals

Did I miss anything? Ahhh...yes. TAKE NOTES.

Let's try again:


1) Set goals - what are you trying to accomplish
1a) Take notes
2) Measure a baseline
2a) Take notes
3) Identify a bottleneck
3a) Take notes
4) Fix said bottleneck
4a) Take notes
5) Repeat until you meet your performance goals

Step 6) -- Report to your boss how much better your application is. But because of Step 1, you'll be able to tell him/her why it matters, right? :)

10 comments:

pveentjer said...

To make the problem even more complex: try adding more than 1 environment you need to deal with.

Tc has access to a lot of machines I heard of Alex. Do you have some kind of environment in place to execute all the performance tests and even is able to analyze trends?

I'm currently setting up a small microbenchmark framework for http://multiverse.googlecode.com so I'm able to do these things without any manual intervention.

Nike shox shoes said...
This comment has been removed by the author.
Nike shox shoes said...

Rich men without convictions are more dangerous in modern society than poor woman without chastity

Nike shox shoes can surely not let you down,romance yourself with nike shox

Nike shox said...

Not too long ago, I did not give a lot of thought to leaving responses on weblog page posts and have positioned feedback even less. Studying by by means of your nice put up, will assist me to do so sometimes.Having a look Nike shox. Good things or not you have the final say.

Anonymous said...

http://www.airshoes.us

Anonymous said...

http://www.frenchtn.com

Anonymous said...

www.frenchtn.com

Zee said...

http://tattogirlz.blogspot.com/

Unknown said...

Do I believe the first RS Moneyidiom has its own area? Confident. It offers a superior pertaining to composable synchronization, that's significant if you want to decouple ones gw2 Goldsynchronization out of your call-stack

Unknown said...

Nice and Informative article, thanks for sharing your views and ideas...


Java Training in Chennai