Common questions about Software Performance Engineering (Introduction to a new post series)
If you read my previous posts you had a chance to note that each of them was devoted to a specific technical question or story. Moreover, each of these posts contains enough technical details to help you resolve a similar issue. And what is important to say I consciously avoided general and unspecific talking without examples. Hopefully, this saved your time as you can apply my solutions without repeating my steps to find them :).
However, just a technical advice doesn’t guarantee your task resolution.
Why? To clarify let me tell you about my conversation with one of my colleagues. So he asked me:
– Did you use YourKit?
– Yeah, I did.
– Do you know how to find what objects are allocated in the Java heap space and what their sizes are?
– Yeah, I do. But what is the problem you are trying to solve?
– Oh, we have a memory leak…
– Are you sure? Why do you think so?
– We have OutOfMemoryError!
Then I had to explain that a lot of things besides a memory leak can cause OutOfMemoryError in Java. Say, high memory footprint (I mean, either you should reduce a memory footprint or increase heap size, PermGen size, etc), or allocation of a very big object, etc.
In short, my colleague didn’t diagnose this incindent properly before trying to find a medicine. So what would be the use of exact information about YourKit features? None. Right?
So, I would like to talk about this kind of questions.
Also I have a pretty funny experience of performance team creation from scratch. I started from the state where my managers understood that performance was a big problem in our company, but they didn’t know performance methodologies existed. They hoped to fix performance issues without any measurements ;). So if my bosses were more educated from the beginning and I just had zero engineers in my performance team it would be much easier. But much less funny.
Let me also recall some of my adventures on this way. It can be useful if you decide to build your own performance team. Perhaps, you will not repeat my steps. But you can remember about my mistakes/findings and do it in your own way :).
I’ll mark this series with “common questions about SPE” category. So you can either skip this category (if you prefer specific technical advices on specific technical tools 😉 ) or you can choose it purposefully to have some non technical reading.
There are the posts of this series:
- "Important things to remember before starting any large performance activity";
- "Performance requirements are like happiness: everyone needs it, but it differs for everyone ;)".
Not too much so far… But I have a lot of ideas and some records in my notebook!