How can I use the new ArcGIS Pro PerfTools Add-in?

10-11-2016 10:44 AM
Labels (1)
Esri Contributor
2 2 888

I’ve installed the new PerfTools add-in for ArcGIS Pro; what are some scenarios in which this new tool can help optimize performance?

Displaying and Logging Rendering Time for Specific Spatial Extents

Have you created a series of spatial bookmarks in your ArcGIS Pro project? A one-line script command (ZoomToBookmarks all) can zoom through these spatial bookmarks and log draw time, frames per second (FPS) metrics, and other timestamps. No bookmarks?  No problem…you can also specify extents by providing 2D or 3D camera positions in the same spatial coordinates as your data. Capture_BookmarksLog-1024x611.png

Playing and Timing Animations

Have you added an animation? Using the PlayAnimation command returns measures of total elapsed animation time, as well as average and minimum FPS.


To build a thorough display cache or simulate navigation through large datasets without specifying bookmarks or camera positions, you can use the roaming capabilities of PerfTools. This allows you to virtually “walk” across the active view, starting from the upper left and moving row-by-row towards the lower right. The total draw time, in addition to average and minimum FPS, are logged for your reference.


Timing Spatial Selection

Moving from a file geodatabase to an enterprise geodatabase? Or have you updated your spatial index? You can examine the impacts these changes have on making spatial selections in ArcGIS Pro. The SelectFeatures command allows you to specify your selection bounding box in screen coordinates on the active 2D or 3D view. PerfTools logs a count of the features selected, as well as the selection and draw complete times.

Scripting Commands

Most power from the PerfTools add-in comes through a comprehensive scripting language that allows you to assemble several commands into a more comprehensive scenario. With this functionality, you can simulate typical user interactions with ArcGIS Pro, including creating and opening projects, panning, zooming, selecting, and so forth. You can add delays or “think time”, as well as looping commands (ForCount, ForFile, ForFolder, and ForTime) to repeat key parts of your workflow. Via script command, you can also control key aspects of logging content and structure in PerfTools.

Custom Script Commands

Not finding the script command you’re looking for? PerfTools allows you to create your own commands through leveraging the ArcGIS Pro SDK. Part of the PerfTools download includes documentation and a sample, “T1Command”, that gets you started with your own customizations.

More Documentation?

After installing the add-in and opening Pro, Take a look in your Documents\ArcGIS\AddIns\ArcGISPro\PerfTools folder.  You should see a PDF there titled "PerfTools_for_ArcGIS_Pro.pdf".  This contains comprehensive documentation and sample code snippets.

Is PerfTools comprehensive? You bet! We’ll be taking a closer look at some of these techniques in upcoming blog posts. In the meantime, feel free to download the PerfTools AddIn and try it out for yourself! 

Ian S. – Performance Engineer
MVP Frequent Contributor

I'm really interested in using this tool, are you able to post a sample script that demonstrates some of the concepts in your post? I'm having a hard time with the minimal documentation. 

Esri Contributor

Take a look in your Documents\ArcGIS\AddIns\ArcGISPro\PerfTools folder once you’ve opened Pro.  You should see a PDF there with the full documentation and code samples.  Let me know if you need more specifics.  Thanks.

About the Author
Esri Performance Engineering. From Warwickshire, England. Mapper, photographer, explorer and technology evangelist.