I’m new to app development and CI as a whole, so I’ve got an oodle of questions.
What is profiling?
How is it used?
How does it work?
What is considered a “long” time?
More importantly,
How do I use it to improve performance?
The reason I’m asking is b/c my app is really sluggish right now.
In performance tuning, the bottom line is how long does the program take, in wall-clock time, to finish the given task. I know that sounds like DUH, but that’s the one concept everyone can agree on.
There is a very firmly held belief that in order to find the code that you can fruitfully optimize to speed up the program, you do it my measuring time taken by various functions and counting how many times they are called.
Even hardware engineers, who I would have thought would know better, have offered to provide me with nice timer and counter chips, when they were building a board set that I was trying to program, thinking that would help me tune the software.
NO THANK YOU, I told them. All I need is a way to stop it at random and ask what the heck is it doing, and why is it doing it. It’s the drop-in-on-your-worker-at-random-and-ask-what-he’s-doing approach. If I do this several times, and a good chunk of the time is being spent less than productively, the chance I won’t catch it is basically nil.
Here is more on the subject.