At work we have a few catch phrases we use when we want to identify certain complex situations. Things like “boys, we have a Houston”, “you broke my build” and my favorite “the problem sits in front of the computer”.
It turned out to be extremely simple. To be exact it was a three character change. Actually the same character from three places very very close to each other.
We have a somewhat deep directory structure for our C code, something like src/product/type/platform/layer/component.
Now in order to get the sources, say per component, you can do something like this:
Well, don’t. The recursive wildcard will take ‘layer/component’ and run with it down the whole ‘src/product’ tree. Wanna see how bad this gets? Here are the numbers once this particular stroke of brilliance is removed from the codebase:
Cluster 5 is a full build, clusters 7/8 and 9/10 are IDE project generation tasks (full and incremental). We got a 59% performance boost on full builds and whopping 90% boost for IDE project generation. And all that by changing 3 characters!
So, one more thing for the things-you-shouldn’t-do-with-rake list:
- Don’t do