[Mapserver-dev] Fwd: MapServer testing results

Howard Butler hobu at iastate.edu
Sat Sep 18 19:28:59 EDT 2004


Paul,

Is the extent that you are drawing a subset of the entire set of 
layers?  ie, do you have an extent for the map that is set to the entire 
extent of all layers before you draw?  MapServer basically queries the 
extent that is given in the mapfile in SDE.  If you are subsetting, set the 
extent to something smaller first, and then draw your query.  I use a kind 
of multi-tiered query approach to get the responsiveness I want in my 
applications.  First I query for a region (like BC), set my map extent to 
that and then draw.  This is with mapscript of course.

There is a quite a bit of brute force geometry conversion going on in 
MapServer to convert from SDE geometries. The geometries stored in SDE are 
the same as in shapefiles (I think, not 100% positive on this - Frank might 
have more insight).  Maybe we could look into using shapelib or OGR's 
geometry stuff to do the conversion instead of what exists in 
MapServer.  The memory costs are also high because we are making at least 
one extra copy of all of the points in the geometries to get them in 
MapServer format.

Then maybe we're copying them again when we project them... :(  I'm 
speculating that ArcIMS hands off the projection duties to the server when 
the projection it is drawing doesn't match the projection of the 
layer.  This saves ArcIMS from having to deal with a full copy of all of 
the geometries and then projecting them all like MapServer does.  I would 
rather poke my eyes out with flaming dung sticks than try to make MapServer 
behave this way though :)

With current CVS, I've also noticed that the first time connection cost is 
very high, with subsequent costs being very cheap due to the connection 
pooling.  ArcIMS's connection cost profile should be quite similar to 
MapServer, as I would assume that it is doing some connection pooling as well.

There still are some bugs with connection pooling that cause my stuff to 
segfault from time to time.  After I upgraded to SDE 9.0, the strategy that 
I took to prevent them didn't work anymore.  I will be getting back to this 
problem soon, but I don't think it is an issue here.

The first thing we could do is feed the extent that is given in the request 
to SDE instead of using the one specified in the mapfile.  That will 
prevent SDE from sending back a lot of extra geometries (and attributes if 
you're getting those as well).  I don't know that it does this now...Steve 
might have more insight/comments on this.

Enough speculation an innuendo for a Saturday night...

Howard






More information about the mapserver-dev mailing list