The other day, I was driving home from an event and there was a massive slowdown on the highway. I assumed that there was a crash or some construction up ahead, but as I got closer to the bottleneck, I realized that the only difference was that there was a cop standing on the side of the highway with a radar gun. Just the presence of a monitor slowed down the performance of the system.
Later that week, I was debugging some Javascript code and ran into a problem I have hit a few times. I had a fairly intensive process looping over a lot of values. I took the standard approach to debug a JS problem and dropped in a console.log
. I refreshed the page, opened the console... and almost crashed my browser.
Calling a console.log
with an intensive process takes a lot of memory, it turns out. I've run into this before, but this time the traffic slowdown really made me think about it. Let's talk a bit about something I'm calling the RadarGun Problem.
In many situations, the fix for the problem is changing where the observation happens. Moving the console.log
outside of the loop - either after or before -is a good option. You can also change the method of observation - drop in adebugger;
and step through it, introducing a purposeful bottleneck to prevent an accidental one.
Have you run into this before? How have you solved it?