Commit e162d51
committed
Avoid dummy endpoints in no-endpoint LineString uncompaction
Rewrite CompactLineStringUtils.uncompactLineString(byte[], boolean) to
decode delta-encoded coordinates directly from origin (0,0) instead of
delegating to the endpoint-aware overload with dummy (0,0) endpoints and
then stripping them via removeStartEndCoordinatesFromLineString().
This eliminates per-call allocation of 2 dummy Coordinate objects,
1 intermediate LineString, and 1 redundant Coordinate[] copy.
JFR profiling under production-like load shows geometry subsystem
allocation dropped from 93 GB to 42 GB (-55%) and overall allocation
rate dropped from 1,499 MB/s to 1,170 MB/s (-22%).1 parent bec3bd4 commit e162d51
3 files changed
Lines changed: 44 additions & 12 deletions
File tree
- street/src
- main/java/org/opentripplanner/street/geometry
- test/java/org/opentripplanner/street/geometry
Lines changed: 20 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
172 | | - | |
173 | | - | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
174 | 174 | | |
175 | 175 | | |
176 | | - | |
177 | | - | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
178 | 193 | | |
179 | 194 | | |
Lines changed: 0 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | 116 | | |
124 | 117 | | |
125 | 118 | | |
| |||
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
83 | 107 | | |
84 | 108 | | |
85 | 109 | | |
| |||
0 commit comments