Performance is an important part of the user experience when it comes to working with software. Factors that contribute to the performance experience include things like hardware, data format, structure, and location, network bandwidth, display and visualization settings, and analysis complexity, among others. Performance can be affected both positively as well as negatively by changes in any one or combination of the above factors.
The purpose of this document is to guide you through some of the most common troubleshooting steps if you experience a performance issue while using ArcGIS Pro.
Check the ArcGIS Pro System requirements and run the ‘Verify your computer’s ability to run ArcGIS Pro’ utility to ensure your machine meets or exceeds the minimum requirements.
Run the Performance Assessment Tool Once you know that your machine meets at least the minimum requirement, run the ArcGIS Pro Performance Assessment Tool (PAT) to see where your machine falls in the range of typical results. Download PAT and read more about it here.
Note that for operations requiring disk input/output, a solid-state drive (SSD) will provide the best performance.
Update GPU driver Since ArcGIS Pro uses your GPU to accelerate rendering, the next thing to check is that your GPU driver is up to date directly from the manufacturer (e.g. NVidia or AMD). New driver releases not only fix bugs and increase stability but can give performance increases as well! Note that “manufacturer” means the GPU vendor in the case of a desktop computer, but if you’re using a laptop, then you’ll need to get your driver updates from the manufacturer of the laptop itself.
To check the GPU driver version, press the Windows key, search for ‘device manager’ and open Device Manager.
Expand Display adapters. Right-click your GPU > Properties
You can find the driver version under the Driver tab.
AMD GPU If you have an AMD GPU, follow the steps outlined in this article: How to Configure Laptop Switchable Graphics
Docking station If using a docking station to dock a laptop to external peripherals such as monitors, make sure that the dock’s drivers are up to date as well.
Laptop-specific power settings If working on a laptop that is plugged in, changing the power options to High Performance can help to ensure that the GPU runs optimally.
That takes care of the quick hardware check. Since visualization and analysis sit on top of data, before moving on with further troubleshooting, consider the location of the data you are working with. This will help to rule out network or bandwidth issues before investing more time troubleshooting.
Is there an active antivirus/firewall/software security solution that could be causing the performance issue? Check this by disabling the antivirus solution and repeating your workflow to see if that was the cause of the performance bottleneck (it may be necessary to coordinate this with your IT department). This should only be done temporarily to isolate the cause of the performance issue and is not a recommended workaround. If disabling the antivirus solution resolves the problem, work with your IT department or the antivirus solution vendor to determine why it’s interfering with ArcGIS Pro.
See How To: Improve performance of ArcGIS Pro when running over Remote Desktop
The recommendation is the same for file geodatabase as it is for enterprise geodatabases: locate your client (in this case, ArcGIS Pro) as close to your data as possible. If your client is on-premises it is not recommended to store your file geodatabases in a cloud store like Google Drive, One Drive, etc.
If your enterprise database is in the cloud, either on a virtual machine (VM) or using DBaaS, then the client that connects directly to it needs to be in the same region/data center.
If your data is not collocated with ArcGIS Pro, as a troubleshooting measure, copy the data to a local drive and repeat the operation that caused suboptimal performance to determine if data location may be the culprit. If working with the data locally resolves the issue, it will be necessary to investigate network/bandwidth settings and capacity which is beyond the scope of this document.
Now it’s time to work with application options.
Navigate to the Project tab > Options > Display (learn more about display options). Adjust each of the following iteratively, checking display performance after each adjustment.
Switch to the Navigation tab (learn more about navigation options).
Switch to the Selection tab (learn more about selection options).
Switch to the Color Management tab (learn more about color management).
Switch to the Indexing tab (learn more about indexing options).
As you continue through the following sections, the integrated Diagnostic Monitor may help to isolate the cause of a performance issue.
If you skipped to this section without reviewing the Data location section, check that first to ensure that the issue is not network/bandwidth related.
Best practices for map performance in ArcGIS Pro are captured in Author a multiscale map. The three main approaches include 1. Using generalization techniques to alter the feature geometry, 2. Adjusting the properties of map layers to limit which features draw relative to the view scale, and 3. Adjusting how the layer symbology draws relative to the view scale. Multiple strategies (for example, using definition queries, using display filters, limiting a layer’s scale range, setting scale ranges for symbol classes, and so on) exist for each of these three approaches, so reference the ‘Author a multiscale map’ help topic for further details.
Additionally, check the following to ensure optimal map performance:
If you skipped to this section without reviewing the Data location section, check that first to ensure that the issue is not network/bandwidth related.
The following are general best practices to ensure optimal geoprocessing performance:
If following the above best practices does not improve performance, continue with the following troubleshooting steps.
1. Add the same data to a new or untitled project. Does the performance problem persist? Slower performance might be related to a large or bloated project. Your project should only include resources you need for the work, and only open maps and layouts that you need rather than keeping them all open. We sometimes hear from panicked Pro users that they accidentally closed a map and lost their work. Maps and layouts can be located and opened from the Catalog pane.
There is an overhead for each background geoprocessing tool run in the geoprocessing pane which is increased per each layer in the map and each open map, particularly for tools that update an existing map layer rather than creating a new dataset/layer (like Add Join, Calculate Field, and so on).
2. Is the tool faster to run and return responsiveness to the app in the 1. geoprocessing pane, 2. floating window (limited to tools opened from ribbon or toolbar buttons that require shorter, focused interaction such as Calculate Field, Select by Attributes/Location, Add Join, and so on), 3. ModelBuilder, or the 4. Python window? The last three run in foreground execution mode which reduces the overhead and should execute faster.
Try the actions listed here to reduce the load on the GPU and restore drawing performance.
Start by reviewing ArcGIS Pro in a Virtualized Environment.
ArcGIS Pro can be run on virtualization environments such as VMware or Citrix. No changes to display options are immediately necessary, but you may choose to lower rendering detail and antialiasing settings to optimize the performance of your virtual machine instance. ArcGIS Pro uses hardware acceleration if it is compatible and available on your virtualization platform. If hardware acceleration is not available, ArcGIS Pro falls back to software rendering—meaning it is using the CPU to simulate graphics card functions. In general, this will result in much lower performance than if hardware acceleration were available, especially in scenes.
It is important to scale VMs and cloud instances to perform the work needed based on what the user’s role is, or what type of user they are. Lightweight, Medium, and Heavy users can decide the resources needed to complete their work. Follow the recommendations provided by the ArcGIS Pro System Requirements to provide adequate system resources, such as CPU and RAM as well as GPU.
When considering On-Premises options consider the roles of the GPUs. It’s best to try to separate or scale out GPU usage case between server to reflect the user roles. If the most users are light to medium weight users, try to group those users together to get the best density and functionality overall. When possible, separate out the heavyweight users to their own GPUs (based on profiles 4q, 8q, etc.) as they will use greater GPU but also CPU and RAM.
Virtualization options with either On-Premises or Cloud-based systems provide stable and useful platforms that support ArcGIS Pro.
On-Premises Virtualization
Citrix Virtual Applications and Desktops (Formerly) Citrix XenApp
(Formerly) Citrix XenDesktop, VMware Horizon (ESXi w/ Horizon Client), Nutanix AHV
Cloud-based Virtualization
Amazon: WorkSpaces, EC2 with Elastic Graphics, EC2 G4
Microsoft Azure N-series
Google Cloud Platform
Oracle Cloud
The list above is a sample of the various options that can deliver ArcGIS Pro. The viable options continue to expand, with new offerings that support user needs, and system requirements.
Esri Blogs and White Papers are updated to reflect the latest information.
Additional Resources:
Announcing the ArcGIS Pro Performance Assessment Tool (PAT)
How To: Improve performance of ArcGIS Pro when running over Remote Desktop
FAQ: How do I troubleshoot ArcGIS Pro performance issues related to antivirus software (exceptions)?
Problem: Rendering and drawing performance issues in ArcGIS Pro 2.0 and above
Troubleshooting Performance Issues in ArcGIS Pro
Geoprocessing Resolution, Tolerance, and Hair
ArcGIS Pro Virtualization White Paper
If you have worked through the above checks and recommendations and continue to experience performance issues, the next best step is to work with Technical Support. Technical Support is the most effective way to convey the information needed for development teams to act on the issue. It provides a trackable object (this may be a Case number and a bug number, if applicable) that can be referenced in the future.
This post is great and should be promoted more often! Did not know about it until after issues arose, thanks to @Robert_LeClair for the suggestion. There's a few items that have come up that are listed here that would have been helpful to know ahead of time. Thank you