Performance problem when trying to run RTC CI builds
I have setup a RTC continuous integration build, but performance is bad. It takes more than 10 minutes for the buidl to determine if it should build or not. I am using the Jazz SCM CLI compare function to determine if there are any changes to the workspace. How can I make the CI builds run quicker?
Accepted answer
The SCM compare function is a very expensive query. It will check every element in the workspace against every element in the stream looking for changes, and for large workspaces/streams that comparison can take a very long time. Rather than compare, consider using the accept command with the build sandbox workspace, if anything is accepted into the workspace then run the build. The accept is a much cheaper command and will accomplish the same task of running the build only when changes occur to the build workspace.
Comments
Are you sure that SCM compare checks every element in the two configurations being compared? My understanding is that the compare operation will scan back along the change history of the two configurations being compared, until it finds a common ancestor, and then bases the compare result on the number of change-sets found. If that is right, then if you have two configurations with millions of elements, but which only differ by one change set, then the compare operation just looks at that one change set.