Sunday, February 15, 2009

ArcGIS Server Performance

A lot of users might have complained about ESRI ArcGIS Server performance. If you are looking for tips to boost your ArcGIS Server, here are 6 ways to do so.  

As a developer, I have been working with ArcGIS Server for the past three years.
Our clients were suffering from its performance, so I decided to write an article of the reasons that I think causing this performance degrade.

We recorded new episodes dedicated just for teaching ArcGIS Server, click here! 

More Flexibility for developers
With each release, ESRI places black and opaque and solid and closed libraries to make it much easier for us the developers to customize ArcGIS Server. They keep adding interfaces and classes and controls and gadgets to their main core for the sake of flexibility. ESRI wants to make the developers life easier, and they are doing a very good job at that.

For example: to create a web mapping application just drag few controls and link it it out to your map and your done! It's even getting much simpler with the ArcGIS Javascript API. 

The more flexible an application is, the less secure it becomes and more the performance penalty.

Hidden things under the carpet
No one knows what code is running behind these controls. No one knows what ESRI is doing on those link. No one knows what callbacks are being sent and when. No one knows what happens when a new user is connected. We have no access to their code. We are just allowed to customize what they provide. Developers have very little to do to improve the performance hence they don't what is going on.

Microsoft is even Hiding More!

Microsoft is adding more and more barriers by the AJAX update Panel and other controls and now Silver light. Just add your lists, combo-boxes, texts inside that panel and here you go you have an AJAX enabled control! Combining this with ESRI Controls makes a big wall that no body can even predict what's behind it.

The punchline is that performance degrades because of the way developers customize ArcGIS server. Developers don't know where to put their code and what their code will affect in this big blackbox system.


  1. I've been planning to switch a web application to use ArcGIS server for a while now, I still haven't done my homework on whether I'll go with the switch or not, I know I could use some of ArcGIS server features, but then again if I'm forced to use a blackbox tools then I'm not interested, if I'm doing the upgrade to ArcGIS server it's going to be mainly for the performance.

    What about if I want to use the ArcGIS server just to query for map images? like how you deal with ArcIMS, is that possible? and if not possible out of the box, what if I sniff the requests to the ArcGIS server and emulate them, think that will work? too many questions better try it out myself :P

  2. Great idea,
    When I first used ArcGIS Server 9.1
    I used it completly with ArcIMS mentality ..

    Because 9.1 was soo tedious.. when you zoom the whole page get refershed..

    So I wrote the whole thing from scratch

    The zoom in , out identify , the table of content .. everything..

    the result is just an image (in a div tag).. it was an extermly faaast website..

    I open a context when I need and close it when i don't want it.. Everything was handled probably..

    However the image AGS uses is a control...
    that does really really alot of stuff that only GOD knows about..

    You can still use this approach ... but it will very huge job for you ..

    with the new releases of AGS 9.2 and 9.3 .. they obligate you to use their ADF ... I hate it so much .. its way so complicated..

    Here is an example of what i used back in 2007

    it won the top honor in Dev Summit Code Challenge in 2007 :)

  3. Greetings All,

    I think you are discussing one tier of the problem which is front-end (web controls, out of the box templates, etc..) that consumes the map services.

    But I think the problem is deeper than that, it’s more related to ArcGIS server internal core.
    back to the history ArcGIS server is based on ArcObjects(the big huge investment from ESRI to launch ArcGIS desktop 8 which is COM based).

    All sudden Microsoft released .NET and it became more & more popular development platform.

    ESRI is confused! (wondering shall we build a new library from scratch under .NET and wait 4-5 years to finish it?!! or
    Use the Interoperability capability available with .NET that uses COM (which is very slow),

    The decision was taken and they came up with 2 products ArcGIS Server and ArcGIS engine both provides .NET ADF and Java ADF
    Someone would ask dose Java ADF uses COM?! (YES through JNI) ( and its much slower).

    So frankly speaking we can’t put the blame on the developers, its always ESRI’s fault.

    I think that explains why they keep tweaking ArcObjects from time to time which would affect ADF controls as well, which leads to generate more & more black-boxes

    Kind Regards,
    Ayman Abunimry

  4. Ayman
    I really thank you for sharing this valuable info..

    You are right, that explains alot of issues

    ESRI is always in a rush of doing things. That places us in a very fragile enviroment..

    Especially the ADF! I just hate it..

    So they come up with the challenge everyyear to attract more developer in loving this technology..

    Thanks again!

  5. Hi y'all, I sit onsite where my client plans on using AGS, and frankly ESRI's helping the competion right now. You all touch on a few good issues, but my 5 yrs @ ESRI (and a file geodatabse exercise taught me to point users deeper under the hood still. Have you tried Dave Peters excellent resource, his System Design Strategy + Capacity Planning Tool?

  6. @Andrew
    Thanks for your comment.
    Yes ESRI is doing a good job, but development wise things are getting really creepy.

    I've seen that book when I went to the US last developer summit. Sounds interesting.

  7. How about this if you have a yen for Windows 7?

  8. ... also this from James Fee blog


Share your thoughts

Note: Only a member of this blog may post a comment.