What is Black Magic and why is it so important for App performance?

What is black magic and key components of black magic that sway an application one way or another in terms of impressive performance gains? Everything that is related to tuning java applications is black magic because it is hard to do. There’s too many factors that matter and then too many parameters can be adjusted to fit these factors. Of course, it is not black magic because there is a good and predictable way into which you can do. Even having an understanding of the application of how the application works is not directly correlated to knowing how to tune. This is where machine learning solves the problems that humans make because it doesn’t really solve a problem because it doesn’t really need to know the internal workings of the application. ML is also persistent and will keep trying. It can also remember what is has tried and finding correlations between factors that may appear unrelated to humans. Especially in Java there is a lot of magic that happens in the virtual machine. There’s the just in time compilation. There is the whole heap management and the complexity of garbage collecting different objects with different lifecycles.

So, even things that kind of look like the same operation, then the same operation happens a second time, it may take a different code path, it may have a different performance characteristics. There’s a lot of complexity and there’s two ways to go and there’s two ways to go. One way is to go the white box approach and become extremely granular and the level of understanding of what works in tracing every single code line, and every functional color, understanding how they work and how to minimize it. The other approach is to say, you know, I am looking at this as a black box, then you can optimize and you have to define what are the important metrics. Is it the response time, requests per second and so on. For more insights, watch Tuning by Humans vs Machine Learning Part 1 and Part 2.

Request A Demo