Ticket #1244 (closed defect: fixed)
[Performance] PointObj cause performance lost
| Reported by: | jlacroix | Owned by: | mapserverbugs |
|---|---|---|---|
| Priority: | high | Milestone: | 4.6 release |
| Component: | MapServer C Library | Version: | unspecified |
| Severity: | normal | Keywords: | |
| Cc: | jmckenna@…, sgillies@…, fsimon@… |
Description
In bug 1224, I found that that a performance lost is observed since we add the Z
parameter in the point object. Just because the pointObj is bigger, it takes
longer to access the parameters of the pointObj.
A line like:
x1 = shape->line[i].point[j].x;
y1 = shape->line[i].point[j].y;
takes between 15% and 50% more time.
Daniel and I talked about it and he proposed to put all access to the m and z
parameters inside a
#ifdef USE_SHAPE_Z_M
...
#endif
By default we could make the m and z options disabled since most of the users
don't use it.
I made some test and it seems that if we put the m and z inside the ifdef, we
gain with this change:
(50 calls to the gmap mapfile)
With the M and Z parameters in point object
4.4: 7.56
4.0: 6.18
With all M and Z parameters inside not enabled ifdef
4.4: 7.10
4.0: 6.23
I propose to commit that in 4.5, but this would require changes to the core and
to mapscript (all flavor). So I want to inform you and maybe have some comment
before.
Change History
Note: See
TracTickets for help on using
tickets.
