Opened 15 years ago
Last modified 13 years ago
#1069 reopened enhancement
Improve MgMap creation performance
Reported by: | christinebao | Owned by: | traianstanev |
---|---|---|---|
Priority: | medium | Milestone: | 2.2 |
Component: | Server | Version: | 2.0.2 |
Severity: | major | Keywords: | |
Cc: | External ID: |
Description
Currently MgMap is created on Web Extension side, and for each layer of this map it sends a request to get the resource content. This causes a lot of requests send to server again and again. To improve performance MgMap should get the layers in a single request, and use the batch processing result to create layer models. The more layers a map has, the better performance improvement is achieved.
Please see RFC http://trac.osgeo.org/mapguide/wiki/MapGuideRfc73 for detail.
Attachments (3)
Change History (9)
by , 15 years ago
Attachment: | GetResourceContentsAPI.patch added |
---|
comment:1 by , 15 years ago
comment:2 by , 15 years ago
Owner: | changed from | to
---|
by , 15 years ago
Attachment: | ImprovePerformance.patch added |
---|
comment:3 by , 15 years ago
Attach patch http://trac.osgeo.org/mapguide/attachment/ticket/1069/ImprovePerformance.patch.[[BR]]
This patch improves performance by using the new API GetResourceContents().
LayerBase adds a constructor without initializing resource content, and the resource content is set and cached after getting them in a single request. Three use cases are affected:
- Open a tiled map with base layers.
- Open a normal map without base layers.
- Print map.
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Type: | defect → enhancement |
comment:6 by , 13 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I reopen this ticket because I found the revision #4191 can't improve the performance, but decline the server performance.The reason is:
The new server API GetResourceContents() is used to reduce the request between web and server. However in server internal, we shouldn't invoke this API to get resource contens. There are overhead to prepare the layerIds and to get the these contents. You can see ImprovePerformance.patch, in MappingUtil.cpp/LegendUtil.cpp, there are some for statements are introduced. This will decline the performance.
So we should revert the revision #4191. I attached an patch for you review.
Please review patch http://trac.osgeo.org/mapguide/attachment/ticket/1069/GetResourceContentsAPI.patch.
This patch added a new server API GetResourceContents().