I am using Model Builder to string together 6-7 geoprocessing tools into a singular tool.
The tool works fine and gets the output I need, however using the tool itself causes extreme lag.
More specifically, opening the Model from the catalog toolbox and filling out any parameters (i.e. selecting layers, setting tolerance, and output files) is very slow. It takes roughly 15 seconds to select a layer already loaded into my map into one of the tool parameters.
Once all parameters are set, the tool runs in a reasonable time; it's setting up the tool parameters that is the most time consuming.
I've tried some common optimization fixes such as resetting the Normal Template for ArcGIS and removing any add-ons but without any successful effect.
From playing around a bit, it seems to have to do with the complexity of the model. If I delete everything but the first process and re-save it as a new model, the lag is not as strong as with the full model.
It sounds like what is taking time is tool parameter validation. All the tools in the model need to verify their inputs and outputs before the model chain will execute. If there is a lot going on, this may take a while.
There may be some ways you could minimize the validation required: Make sure the model is validated before you save it from edit mode, nesting models can sometimes speed things up, etc. However, when you have a complex workflow with many tools it really starts to make sense to consider implementing as a script tool. Some workflows just don't work well in ModelBuilder.
On the plus side, ModelBuilder has helped you debug and fix up a complicated workflow, which you can easily port to python by exporting to script (usually some editing is required after the export).
Andrew, could you post your model (zip the toolbox, attach to post) - it may be helpful to see what conditions are making things slow.