Best Practices for Optimal Performance in ArcFM - Reduce the ArcMap Footprint

Version 14

    The Schneider Electric Delivery Services team holds large amounts of knowledge and experience around implementing ArcFM and Designer. A primary focus of each implementation is performance. The Delivery Services team uses its knowledge and experience to ensure each client experiences optimal performance. This paper offers some best practices for gaining the best performance possible in your ArcFM and Designer implementation.

     

     

    Reduce ArcMap Footprint

     

    Schneider Electric recommends 4GB of memory (either physical or virtual) for each instance of ArcFM or Designer. The memory is divided into two partitions so that 2GB is used by ArcMap and the other 2GB is used by the Windows OS.

    Stability may begin to become compromised as ArcMap approaches its 2GB memory limit in Windows. As the memory usage for a process or application approaches approximately 1.6GB-1.7GB of the 2GB limit then performance and stability will begin to suffer and the process will ultimately crash if memory usage continues to increase.
    The best practices in this section outline how to reduce this memory usage and prevent instability.

     

    Uninstall unused ArcGIS for Desktop product extensions

     

    Identify and uninstall any unused ArcGIS extensions. These extensions are loaded into memory each time ArcMap is started and may consume several hundred megabytes of memory.

    Example

    One utility uninstalled thirteen extensions (including unused custom extensions) and reduced the memory footprint by 110MB.

     

    Investigate Memory Usage by the Stored Display and Map File

     

    If you’re using an MXD file and it seems to use excessive amounts of memory (e.g., 330MB with ~150 layers in the map), you may be able to identify specific layers consuming more memory. Esri offers a tool called MXDPERFSTAT that can help diagnose typical MXD document performance problems. Download MXDPERFSTAT here: https://www.arcgis.com/home/item.html?id=a269d03aa1c840638680e2902dadecac

     

    Disable Designer for Non-Designer Users

     

    Schneider Electric’s Designer product requires about 100MB of memory and contributes to the overall ArcMap memory utilization. For users who do not use Designer, the license for this product can be disabled and thus reduce the memory utilization. In a Citrix environment, separate the ArcFM users from the Designer users and configure the ArcFM License Manager to use only the ArcFM license.

     

    Analyze Duplicate Feature Classes

     

    In your stored display, identify any feature layers (including annotation) that are duplicated and determine whether they can be removed or consolidated.

    • Duplicate layers with different definition queries
    • Duplicate layers with different visible scale ranges
    • Duplicate layers with different labeling

    Example 1:

    A utility had two layers in the stored display (Transmission and Distribution) with two different visibility scale ranges. Transmission was always visible and Distribution was suppressed until dropping below 1:24000. They had two alternatives to improve performance:

    • Combine the two layers
    • Use ArcGIS Server to provide the Transmission view

    Either of these options would reduce the memory footprint by at least 50MB.

    This same utility ultimately removed 26 duplicated layers and reduced the memory footprint by 114MB.

    Example 2:

    A utility removed just four duplicated annotation classes and reduced memory consumption by 104MB.

     

    Analyze and Fix Memory Leaks in Custom Code

     

    Custom code components may leak virtual memory when references to objects are obtained but not properly released. Cursors are a prime example. Fixing memory leaks will aid in the application’s stability over time and also improve performance.

     

    Remove Group Layers

     

    Determine whether you can delete any group layers. Testing has revealed that group layers may impact performance during startup, opening a stored display, and creating and opening a session.

    Example:

    One utility removed four group layers and experienced a memory savings of 100MB.