Select to view content in your preferred language

Layer performance metrics within ArcGIS Pro

650
2
10-17-2023 03:02 PM
PatOBrien
New Contributor III

We are looking for an efficient way to predict map service drawing performance. We want to do it before the service is published, within ArcGIS Pro.

  • We want to determine layer by layer performance metrics, so that they may be identified and optimized before a service is published.
  • We are dealing with high volumes of layers across a high volume of maps that are subject to regular change. Whether it be vector or raster layers in the map.
  • Our layers originate from SDE, FGDB's plus File Store locations.


We publish/overwrite map services frequently as the data changes, layers are added/removed/configured etc...services are then used within ArcGIS Portal Maps for use in Experience Builder and other Portals apps.

 

In ArcMap we used mxdperfstat as a way of identifying and optimizing layer drawing speeds. It simply took an input MXD and ran it's own pre-programmed testing of each layer at various scales.
Critically mxdperfstat produced an output that would provide you a list of all layers within your map with important stats on: Layer Name, Refresh time, Recommendations. It also provided useful stats on number of features, number of vertices, labelling plus others. It was a highly efficient way for GIS analysts to ultimately deliver high performance map services.

 

As we are transitioning into ArcGIS Pro we are looking into PerfTools capabilities to undertake this capability.
I have been reading the PerfTools documentation for ArcGIS Pro and have also undertaken testing.
It doesn't seem to provide layer by layer drawing speed statistics. I can see it can provide metrics on bookmark drawing speeds but not per layer drawing speeds within the map.
It seems that PerfTools can inform DrawTime for sections of your map but it does not provide individual layer DrawTime & associated metrics.

Does anyone have examples of PerfTools outputs that identify layer by layer performance metrics?

 

Does anyone have any suggestions for alternate methods?

We would happily look at alternatives such as Python scripts or other 3rd Party Add-ins.
If there are also alternate tools out there that can look directly and analyze a Map Service this could also be of interest.

 

To re-iterate our focus is on individual layers within an ArcGIS Pro Map. With high volumes of layers across high volumes of maps.
There is no intention to determine ArcGIS Pro machine performance nor ArcGIS Server machine performance.

 

Hi @KoryKramer - I have seen your contributions to several posts related ArcGIS Pro performance. If possible, I would be interested to hear your thoughts on this matter.

Thanks.

0 Kudos
2 Replies
KoryKramer
Esri Community Moderator

Hi @PatOBrien I got in touch with the team that builds the PerfTools add in and they indicated that they are adding a question to the FAQ of the next PerfTools release. 

PerfTools does not return per-layer draw timings. This is because Pro has a fused, multithreaded rendering pipeline, unlike Desktop 10.x, which rendered on a multi-pass layer-by-layer basis that was easier to isolate.

An idea was that you could isolate timings for single layers to render using PerfTools and the AddLayer command.

PatOBrien
New Contributor III

Hi @KoryKramer appreciate the response. And thanks for reaching out to the team responsible for PerfTools add in. 

That is in an interesting suggestion.

For us that would likely mean a workflow of:

  • Add all layers to map
  • Configure layer labels, symbology, zoom scales etc...
  • Save all layers to .lyrx files

  • Iterate through each .lyrx using AddLayer command
  • Report DrawTime per layer

I shall investigate this option.

If possible, can you ask the team if there is a road map for PerfTools and any new functionality that may come with future versions?

Thanks,
Pat