Archive for the ‘Performance’ Category

Geocortex Optimizer 1.6 is Now Available

September 18th, 2012 by Kevin Rintoul

Latitude Geographics is pleased to announce the general availability of Geocortex Optimizer 1.6. This release offers support for ArcGIS Server 10.1, various feature enhancements and significant usability improvements. Highlights include:

  • Support for ArcGIS Server 10.1, including enhancements to make use of a new REST endpoint in ArcGIS Server for log files to support Esri’s migration from the IIS web server to Apache Tomcat
  • Support for WMS services. WMS service requests in ArcGIS Server are now logged, and a new WMS Requests line has been added to the Optimizer summary report
  • Support for Feature Editing operations. Editing requests to feature layers in ArcGIS Server are now logged and reported
  • Enhancements to scheduled reports functionality: reports may now be saved to a given directory, as well as scheduling reports for email to specified users
  • Enhancements to the configuration utility, including convenience functions that allow adding map, geocoding and image services on ArcGIS Server to a map service probe
  • Ability to track users when web mapping applications are accessed through Windows (through Windows username), as well as identifying users logging in through Windows integrated authentication security
  • Rewritten documentation, usability enhancements, bug fixes, and performance improvements to queries

Please consult the release notes for more detailed information regarding this release. The release may be downloaded by Optimizer customers with an active maintenance agreement from the Geocortex Support Center. If your account is handled by an authorized Geocortex reseller, please contact your local representative for access to installers and documentation.

Performance Evaluation Tools

July 7th, 2009 by Stephanie Blazey

When considering layer performance, our usual goal is to have a layer render in under 2 seconds, and simple layers can often render in under 1 second. When setting up an MXD in ArcMap, the user can get a rough idea of how long layers take to render by turning them on and off to see how long they take to render on the desktop. Any complex layers (parcels, local streets, detailed coastlines) should be limited to a closer zoom, and any general layers (county boundary, highways, large polygons) can be available at full extent.

If you are using ArcGIS 9.3.1, there is a performance analysis tool available on the “Map Service Publishing Toolbar”. Right-click the main menu in ArcMap to access the Map Service Publishing toolbar. This is helpful for overall map service performance, and can also give feedback on layers that should be limited to a larger scale. More info and instructions on how to use the Map Service Publishing Toolbar from ESRI here.

If you are using ArcGIS 9.2 or 9.3, there is a great script available called MXDPERFSTAT. The script is a free download from ESRI ArcScripts and it works with 9.2, 9.3, and 9.3.1.

MXDPERFSTAT is fairly straightforward to run, you launch it from a command prompt and it will give you feedback on your MXD performance for ArcGIS Server. It analyses your MXD at different scales and locations, which you can set yourself or accept the defaults. It goes through and turns on each layer of your MXD one by one and assesses it for performance. When complete, it outputs an XML file which shows the refresh time in seconds at each scale for the whole map, and then more detailed information for each layer at each scale, including warnings, recommendations to improve performance, number of features and vertices drawn, and layer spatial reference, to name a few. I found it took approximately 15 minutes to run the script on a site with 50 layers. The more complex layers (parcels, streets) took noticeably longer to process than the simple layers.

Caching at a specific extent

May 22nd, 2009 by Stephanie Blazey

Fully or partially caching your map service can be an effective way to improve performance when you have a lot of detailed data or imagery. Caching works well for layers that are not frequently updated, as it can take a considerable amount of time to cache or re-cache your map service, based on layer complexity, the number of layers, and the extent of your map.

One time-saving option is to cache or re-cache your map service at a specific extent, which is great when you are only updating one area of your map, or when your detailed data/imagery does not cover the full extent of your map.

When you are ready to create your map cache in ArcCatalog, and you have set your tiling scheme and image settings, click the “Create Tiles…” button (Note: this button will say “Update Tiles” if the map service is already cached)

cache1

This will launch the “Manage Map Server Cache Tiles” window, in which you have the option to choose a dataset to set the Update Extent (circled in red, below), or manually enter the Top, Bottom, Left and Right extents (circled in blue, below).

cache2
You will also have the option to choose an Update Mode (red arrow, below) if you are updating your cached map service, including:

Recreate Empty Tiles – recreates tiles that are empty (because they have been deleted on disk), or tiles that are new (because the cache extent has changed or because new layers have been added to a multi-layer cache). Old tiles will be left unchanged.

Recreate All Tiles – replaces all tiles, and new tiles are added if the extent has changed, or if layers have been added to a multi-layer cache.

Delete Tiles – deletes all tiles from the cache. (Only tiles will be deleted and not the cache folder structure. There is a “Delete Map Server Cache” tool available if you wish to delete the entire cache, including folder structure.)

cache3

Another caching option is to update specific areas using a feature class (blue arrow, above), where you can use a polygon feature class to manage tiles (create/update/delete) based on the extents of features of a feature class. For example, if you are caching a country, you might supply a feature class of major urban areas. By doing so, you are requesting that the server only pre-create tiles that cover those urban areas. The rest of the areas can be cached on demand when requested by clients. This can save you time and disk space that would be consumed by creating unneeded tiles in rural areas.

Here are some more helpful links related to caching from ESRI:
Tutorial for Creating a Cached Map Service
Creating Cache Tiles
Using a Map Cache
Tips and Best Practices for map caches
Overlaying Map Caches in the .NET web ADF

Performance and Optimization

May 5th, 2009 by Stephanie Blazey

Having just given a presentation on Effective Web Based Cartography and Representation at our Geocortex User Conference, it became evident that people are very interested in the performance/optimization side of things.

ArcGIS Server 9.3.1 includes some great new features for this, and ESRI Canada is hosting some related webinars:

• Performance and Optimization Techniques for ArcGIS Server, May 14, 2009 and June 4, 2009
• High-performance Dynamic Map Publishing with ArcGIS Server 9.3.1, May 19, 2009

Also, Geocortex Optimizer is a product we have developed that provides a number of related and complementary features that help you ensure best possible performance (and monitor usage over time to create web-mapping applications better tuned to your users’ requirements).

Anyway, if you weren’t at the Geocortex User Conference and are interested in taking in my Effective Web Based Cartography and Representation presentation, you can catch the next webinar version on Wednesday, May 20th, 2009. I will be adding more content on the topic of initial design to maximize performance. Registration is here.

Map Optimization

March 18th, 2009 by Stephanie Blazey

Often, making small changes to map symbology and the properties of layers can significantly reduce a map’s drawing time. Here are some tips for map optimization:

  • Confirm all data are in the same projection. On-the-fly projecting can make your map take twice as long to load.
  • Data should be representative of viewing scale: generalized data (e.g. county boundaries, lakes, highways) can show at full extent, detailed data (e.g. parcels, local streets, imagery) should show only when zoomed in.
  • Use simplified data at smaller scales. For example, a detailed coastline may draw slowly at full extent. If it is simplified to have fewer vertices and line segments, it will draw much faster with little difference in appearance at full extent. The more detailed data can be used at closer zoom.
  • Set minimum scales (maximum zoom level) for all layers, and set MXD project full extent.
  • Minimize use and extent of labels.
  • Minimize use of offsets and masking.
  • Avoid serif fonts, as the “twiddly bits” take longer to draw.
  • Avoid using joined data. Instead, export the data to a new feature class that contains the joined data. If you must use joined data, check out the performance tips for using joined data in the ArcGIS Desktop Help.
  • Use queries where possible to remove features that are not required on your map.
  • Point, line, polygon draw order is generally preferred – note that transparent polygons may be best displayed as topmost layer.
  • Use the “ESRI optimized” symbol set for lines and polygon fills:

esri_optimized