SparkBuild — Fast, Reliable Developer Builds
SparkBuild™ is a free build tool for developers who want to save time and quickly debug broken software builds.
Until now, build avoidance techniques such as object reuse and incremental builds have delivered broken builds and disappointing performance. SparkBuild takes a smarter approach to build avoidance called subbuilds, which deliver 6-10x speed improvements on developer builds with no additional hardware required. On top of the speed benefits, SparkBuild makes debugging broken builds just as fast, with powerful build analytics capabilities based on the commercial ElectricInsight solution. SparkBuild is GNU Make and Nmake compatible. Best of all: SparkBuild is free to use for commercial and non-commercial projects.
The SparkBuild build tool is a free download. The product, as well as how-to videos, documentation, and discussion forums are available at www.sparkbuild.com.
Subbuilds: Build Avoidance Done Right
One of SparkBuild's key features is the subbuild technology, which helps developers avoid wasting time on unnecessary builds. Tools like ccache and ClearCase winkins have co-opted the term "build avoidance," but in fact they do object reuse, not build avoidance, and are not always effective for developer builds. Subbuilds are a simple yet effective approach to build avoidance, and are much faster than object reuse.
Subbuilds are an improvement on standard incremental build technology. Instead of checking the whole build for up-to-date status, and then rebuilding just what has changed, our technology uses a pre-existing 'map' to determine what parts of the code are needed to produce the target you're trying to build, and then performs an incremental build on just those pieces. This skips a lot of makefile parsing, stating, and always-run rules for irrelevant components, and leads to 6X or better speed improvements with no additional hardware required. As an added benefit of subbuilds, that 'map' lets you build from a subdirectory and still get the behavior of an incremental 'from the top'.
SparkBuild Insight: Visual Build Debugging
SparkBuild features powerful analytics based on the commercial ElectricInsight product help developers troubleshoot builds at a glance. SparkBuild Insight uses information recorded during the execution of your build to profile its structure and results. This data is used to provide clear insight into the build process, making it simple to identify component relationships, failure causes, and opportunities for optimization.
It gives you a visual environment to rapidly discover build outcomes — instantly identifying specific targets which failed and tracing back to the originating makefile rules — as well as graphical reports that show where your build time is being spent, whether in compilation, file I/O, linking, or other classifications. With this information, making decisions on how to best solve performance bottlenecks, identifying the right place to make structural modifications, and resolving integration issues with new changes and components is straightforward and easy.
Product Comparisons
| SparkBuild Insight |
ElectricInsight | |||
| Analyze makefile dependencies | ||||
| Analyze missing dependencies | ||||
| Estimate parallel build performance | ||||
| Identify build time by tool | ||||
| Display the structure of parallel builds | ||||
| Watch live and replay builds | ||||
| Track environment and build configuration | ||||
| Track file and registry usage | ||||
| Produce a manifest and BOM | ||||
| Search build rules and command output | ||||
| Change impact analysis | ||||
| Identify where specific sources are used | ||||
| Identify unnecessary dependencies | ||||
| Compatible with SparkBuild | ||||
| Compatible with ElectricAccelerator | ||||
| SparkBuild | ElectricAccelerator | |||
| GNU make support | ||||
| NMAKE support | ||||
| Visual Studio support | ||||
| Eclipse support | ||||
| Optimized gmake parser | ||||
| Subbuild optimized component builds | ||||
| Accurate incremental builds | ||||
| Missing dependency detection | ||||
| Clustered parallel builds | ||||
| Reports build structure information | ||||
| Reports makefile dependencies | ||||
| Reports missing dependencies | ||||
| Reports file and registry information | ||||
| Compatible with SparkBuild Insight | ||||
| Compatible with ElectricInsight | ||||

