(no subject)
May. 25th, 2005 07:11 pmAaaagh!!
I've spent weeks now getting up the nerve to return to work on the fedoratracker.org code. It takes that long because every time I get involved with a major overhaul or speed enhancement the project invariably snowballs and eats my life. I end up basically working two jobs, where I get home from work every day and then code for 6-8 hours before finally crashing, going to bed and repeating for months at a time. It's rewarding but exhausting and quite unpleasant by the end. As a result, every time I've reached a point lately where I feel satisfied and have shelved tracker for a while I've taken longer and longer to get back into the next phase. It's hard (impossible?) for me to create in moderation but I don't want to be stressed out and consumed by my hobbies all the time, either. That, and tracker is so big now that every return to work involves spending tedious time re-learning what the hell I was doing when I left off. Anyway, I'd finally gotten myself to the point where, dangit, I was going to sit down and fix this last niggling performance issue once-and-for-all. I know most of you don't use or care much about this particular project so I'll make the technical bit brief, but I need to vent:
There was just one aspect of tracker's performance that remained slow after the last round of revisions, but it was excruciatingly, embarrassingly, un-usably and, worst, inexplicably slow. I'd been thinking up ways to address the problem but they were all either kludgy or required features that didn't yet exist in the database that my web host uses. I was just about to buckle down and start pounding something messy together tonight when after a little experimentation and thought I realized that I hadn't created any indexes in the database for the column that this particular search was using! This, for those less technical, is roughly equivalent to someone saying "I couldn't figure out why my grilled cheese sandwiches were coming out wrong until I thought to use slices of cheese instead of just sticking a loaf of tilamook between two slices of bread". Even worse, this was exactly what had turned out to be a major cause of the last performance issue I tracked down, too. GAH!
So the end result is that this particular task went from taking the database about 1.5 minutes to taking it 0.63 (and in one case 0.15) seconds. And this required one db command instead of the complete re-working of the front/mid-end code that I'd ramped myself up to accomplish. I guess I should be relieved but... *headwall*. talk about anticlimactic.
Oh well. Now I have more time to... ummmm... figure out something else to do when I can't hang out with friends for fear of diseasing them.
Update... four hours later. Ok, so maybe I didn't run out of things I wanted to do to tracker after all. =:) But hey, now I've gotten a couple more improvements squeezed in and it's not too late to pretend I got a decent night's sleep. Here's hoping I get my voice back tomorrow.
I've spent weeks now getting up the nerve to return to work on the fedoratracker.org code. It takes that long because every time I get involved with a major overhaul or speed enhancement the project invariably snowballs and eats my life. I end up basically working two jobs, where I get home from work every day and then code for 6-8 hours before finally crashing, going to bed and repeating for months at a time. It's rewarding but exhausting and quite unpleasant by the end. As a result, every time I've reached a point lately where I feel satisfied and have shelved tracker for a while I've taken longer and longer to get back into the next phase. It's hard (impossible?) for me to create in moderation but I don't want to be stressed out and consumed by my hobbies all the time, either. That, and tracker is so big now that every return to work involves spending tedious time re-learning what the hell I was doing when I left off. Anyway, I'd finally gotten myself to the point where, dangit, I was going to sit down and fix this last niggling performance issue once-and-for-all. I know most of you don't use or care much about this particular project so I'll make the technical bit brief, but I need to vent:
There was just one aspect of tracker's performance that remained slow after the last round of revisions, but it was excruciatingly, embarrassingly, un-usably and, worst, inexplicably slow. I'd been thinking up ways to address the problem but they were all either kludgy or required features that didn't yet exist in the database that my web host uses. I was just about to buckle down and start pounding something messy together tonight when after a little experimentation and thought I realized that I hadn't created any indexes in the database for the column that this particular search was using! This, for those less technical, is roughly equivalent to someone saying "I couldn't figure out why my grilled cheese sandwiches were coming out wrong until I thought to use slices of cheese instead of just sticking a loaf of tilamook between two slices of bread". Even worse, this was exactly what had turned out to be a major cause of the last performance issue I tracked down, too. GAH!
So the end result is that this particular task went from taking the database about 1.5 minutes to taking it 0.63 (and in one case 0.15) seconds. And this required one db command instead of the complete re-working of the front/mid-end code that I'd ramped myself up to accomplish. I guess I should be relieved but... *headwall*. talk about anticlimactic.
Oh well. Now I have more time to... ummmm... figure out something else to do when I can't hang out with friends for fear of diseasing them.
Update... four hours later. Ok, so maybe I didn't run out of things I wanted to do to tracker after all. =:) But hey, now I've gotten a couple more improvements squeezed in and it's not too late to pretend I got a decent night's sleep. Here's hoping I get my voice back tomorrow.