My builds are slow, how can I speed them up?
Authors: LaraZiosi Last updated: 27 Feb 2013 Build Basis: RTC, 4.0.1
This topic relates to improving the performance of builds launched by the Jazz Build Engine (JBE).
Note however that if you do not delete the Load directory, your build script will be responsible for cleaning up any files created by the previous build, that should not be present in the current build (such as any .class files, for which the corresponding .java files were deleted from the repository).
Understanding Build Phases
When you create a new Build Definition, you first choose a Build template, and then you typically choose Pre-Build and Post-Build options. Generally, among the Pre-Build options you select "Jazz Source Control" (or similar, depending on the selected Build Template). This Pre-Build option allows you to fetch sources from the RTC repository to a local directory, where these sources will be built. The build itself could use a variety of tools (ANT, Maven, Command Line etc.). Post-Build activities include publishing results and automatically delivering components to a stream based on build results. Here are some possible ways of improving build performance by looking at the various phases.Pre-Build: Incremental Builds for Continuous Integration
The RTC documentation and user interface does not use the terms "Clean" and "Incremental" build, the way Eclipse does. However, in the "Jazz Source Control" tab of the Build Definition, you can specify the Load Directory, and whether this directory should be deleted before a new build is executed. If you choose to delete this directory, or if you delete the entire Build Workspace, you will perform what you could call a "Clean" build. If you are doing Continuous Integration, you will typically preserve the Build Workspace, and you will not delete the Load Directory directory. This way, only source files that have changed will be fetched from the repository. This constitutes what you could call an "Incremental" build. "Incremental" builds will be faster, but "Clean" builds are certainly needed in some situations.
Note however that if you do not delete the Load directory, your build script will be responsible for cleaning up any files created by the previous build, that should not be present in the current build (such as any .class files, for which the corresponding .java files were deleted from the repository).
Pre-Build: Caching proxy
To speed up fetching the sources from the repository, you can use a caching proxy.Build execution
Speeding up the actual build execution depends critically on the build script being used. Some suggestions that apply in general can be found in section 6 of the article Continuous Integration Best Practices with Rational Team Concert (Keep the Build Fast).Post-Build: managing the publication of large logs
As an alternative to publishing large logs to the repository, you can post links to artifacts on a HTTP server (see Build Artifacts Publishing Using HTTP Servers).Related Topics: Performance Troubleshooting, Deployment Web Home
External Links:
- Tutorial: Building with Jazz Team Build
- Using content caching proxies for Jazz Source Control
- Continuous integration using Rational Team Concert
- Continuous Integration Best Practices with Rational Team Concert
- Build Artifacts Publishing Using HTTP Servers
- Automated Build Output Management Using the Plain Java Client Libraries
- Rational Build Forge Performance test results: Evaluating the improved performance in 7.1.2 relative to 7.1.1.4
Additional Contributors: TWikiUser, TWikiUser
| I | Attachment | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|
| |
BuildIncremental.jpg | manage | 119.6 K | 2013-02-27 - 21:45 | UnknownUser |
Contributions are governed by our Terms of Use. Please read the following disclaimer.
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

