Quote:
So you'd rather just blast out a random change to make the problem go away without having the slightest clue what you just did?
"Hey, my check engine light turned on. I fixed the problem by cutting the wire. That sucker won't turn on any more, I guarantee it."
Of course not.
Quote:
So how many millions of lines do you work with on a daily basis? I have a great example of my point from just this morning. I was trying to determine why performance had slowed by 3x between one version and a later version. Now, I have spent the last two months on sabbatical, so I had to spend several hours just swapping a lot of knowledge back into my head, that I had pushed aside during my time off. Yes, this involved a debugger.
I wasted the first half of the day watching code run. After lunch, I decided to actually look inside one of the output files. I saw a clue that immediately led me to the problem. It took all of about 5 minutes. If I'd stayed in the debugger I'm quite sure I would have wasted my entire day.
On the other hand, the debugger did help me to page a lot of essentially knowledge back in. I don't deny that the debugger can be tremendously useful. But I find the comments that the first response should always be to immediately jump into the debugger, and stay there, somewhat uninformed.
Performance issues is the work of a profiler. Unless, of course, you cannot determine the cause yourself. Instead of scanning over the code, all it took was one profiler run to determine the bottleneck and optimize it.