MXDPerfStat - Map Document Performance Analyzer
MXDPerfStat
- Developed by ESRI, but is an unsupported tool which requires ArcGIS Desktop or ArcGIS Engine.
- It is a command line tool, but don't let that scare you. With a .bat file it is very easy to run (see below).
- Can be downloaded at ArcScripts: http://arcscripts.esri.com/details.asp?dbid=15570
What does it do?
- Opens up the specified MXD in an engine app and runs through all the layers at specified scales
- Measures the draw time of each layer at each scale
- Outputs a XML file that has all of the stats in a few nice tables (uses a XSL file to style the XML file)
- Tells you some good information for each layer at each scale, like how many features/vertices were drawn
- Gives you recommendations when the draw time is over preset tolerances, such as "set scale dependency," or "simplify geometry"
Where do I use this?
- Publishing optimized dynamic map services on ArcGIS Server
- Using MXD's in a production environment where you want to make the map as fast as possible (i.e. ArcGIS Engine app)
Limitations
- Maplex license needs to be single use (not a floating license)
- Does not support WMS layers
- Does not support Image Server layers
Setting up the .bat file
- Create a .bat file with Notepad in the same location as MXDPerfStat.exe
- In the .bat file type in (remove quotes): "MXDPerfStat -MXD" followed by the path to the MXD
- If the path to the MXD has spaces in it, put quotes around the path
- If you don't put in any thing else it will use default scales and choose the center of the MXD as the coordinate it zooms to at larger scales (closer in)
- Scale can be added like this: "-scale 50000000;25000000;10000000;5000000;2500000;1000000;500000;250000;100000"
- The location it zooms to can be added like this: "-xy 1633113.213;79654.84" where x,y are from the Dataframe Coordinate System in the MXD
At 9.3.1 ArcGIS Desktop includes a new toolbar called Map Service Publishing. It has an analyze feature that is similar to what MXDPerfStat, but doesn't completely replace it. We'll look into that another time.
Post new comment