I'm building an application with lots of components, a lot of which are third-party so I only know what I can get from their documentation.
From time to time, by pure luck, I find out one of these components was pretty heavy and had an option to cache stuff.
I can't stop thinking that if I weren't lucky, one of these components would end up killing the performance of my app and I wouldn't have a clue what to do. I would end up adding more hardware like an idiot.
So how do you find these kind of bottlenecks? I mean I wouldn't have a nice report saying "this part is slow", like it happens with the database.
For example, today I found that a serializer I was using was heavy and wasn't being cached. Are there repeatable steps I could have followed to discover that the serializer was slowing things down?