Opened 14 years ago
Closed 14 years ago
#1538 closed enhancement (fixed)
Speed up Coordinate System Dictionary lookup when reading all CS definitions at once
Reported by: | baertelchen | Owned by: | baertelchen |
---|---|---|---|
Priority: | low | Milestone: | 2.3 |
Component: | General | Version: | 2.1.0 |
Severity: | minor | Keywords: | Coordinate System API |
Cc: | External ID: |
Description ¶
When reading all available coordinate system definitions from the dictionary (in this case, from coordsys.csd), the current implementation does (way too) many file look ups via CsMap. For each(!) CS definition to be read (out of thousands), the implementation will first read the CS' name (1), this name is later taken to read the CS' definition (2). When creating the MgCoordinateSystem instance, the CS' datum is taken and the MgCsDatum instance is created(3). While creating the MgCsDatum instance, the MgEllipsoid instance is also created (4).
The numbers indicate the file accesses via CsMap. This includes a global in-process lock, the file access itself inside CsMap (which does a divide-and-conquer-like search within the file) and the construction of the object.
This ticket is to fix the implementation of [MgCoordinateSystemEnum::Next(UINT32 ulCount)] in [CoordSysEnum::Next(UINT32 ulCount)] as returned by the [CoordSysDictionary] class.
That is, when an API client is about to read ALL available systems (as indicated by the UINT32 ulCount parameter), the lookup has to be much faster.
Change History (2)
comment:1 by , 14 years ago
Summary: | Speed up Coordinate System Dictionary lookup when reading all CS definitions at one → Speed up Coordinate System Dictionary lookup when reading all CS definitions at once |
---|
comment:2 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Has been fixed in revision 5427 (main submission) and 5432 (additional fix to address problem with lowercase / uppercased code strings) (December, 1st 2010).