[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