Instrumentation Overhead
One of the nice things about conferences such as ODTUG http://odtugkaleidoscope.com/technicalsessions.html is the networking and ideas exchange that they facilitate. One of the nice things about Twitter is that it allows people who aren’t there to catch up on these two conference aspects. Even @doug_conference who doesn’t use Twitter recognizes this. Anyway, @alexgorbachev commented on Tom Kyte’s presentation at odtug
#odtug quote of the day “overhead of instrumenting your code is negative” paraphrased by me but based on Tom Kyte
Now I wasn’t there, but I have heard Tom say that instrumentation isn’t an overhead because it is information that you require. In that sense I agree with the comment and Alex’s paraphrase. However most people consider overhead to mean something like
Overhead sometimes describes the amount of processing time the installation of a particular feature will add to the amount already required by the program. WhatIs.com
In this sense I disagree with Alex, and it was in this sense that I replied to him.
I disagree, it is positive, but only for code that doesn’t matter.
That is to say where you have uninstrumented code that already completes the required task in an adequate timeframe then instrumenting that code that will add some execution time. This is in the second sense ’overhead’. The reason I say that that code doesn’t matter is that it is code that you shouldn’t be tuning (yet) anyway. If your code achieves it’s task in its expected time frame then it is efficient enough.
The key reason I suspect that Tom said whatever it was that he did is in the, more usually encountered in financial accounting, following definition of overhead
The ongoing administrative expenses of a business which cannot be attributed to any specific business activity, but are still necessary for the business to function InvestorWords.com
In finance terms these tend to be things like rent,insurance and so on. In software terms instrumentation fits this definition beautifully. It doesn’t directly contribute to achieving any specific code outcome. it’s there so that, should it be required, then the desirable goal of tuning specific tasks can be achieved. As in a company without insurance you can operate without it and there is an extra cost to having it. When the time comes however it is invaluable. As with the financial world overheads like instrumentation should be made as efficient as possible, they shouldn’t be skipped.