Modify ↓
Opened 17 months ago
Closed 17 months ago
#7159 closed defect (fixed)
Layer merging performance
| Reported by: | Don-vip | Owned by: | team |
|---|---|---|---|
| Priority: | normal | Component: | Core |
| Version: | latest | Keywords: | |
| Cc: |
Description (last modified by Don-vip)
The "merge layer" action can be slow as hell. With these two data sets, including only new primitives:
- A: 30.000 highways, 80.000 nodes, 9.000 relations associatedStreet
- B: 65.000 addr:housenumber
The loading of each data set takes only few seconds. However if I try to merge them, I'm forced to cancel the operation after several minutes of processing without any visual indication of the remaining time.
Two things to do here:
- Speed up the process, it shouldn't take so long (I have added some traces to measure performances, JOSM merges nodes at the incredible speed of 40 nodes per second !)
- Indicate in a progress bar the advancement (currently, there is no progress bar at all)
Attachments (1)
Change History (5)
comment:1 Changed 17 months ago by Don-vip
- Description modified (diff)
Changed 17 months ago by Don-vip
comment:2 Changed 17 months ago by Don-vip
The merging speed bumped in my examples from 40 to 300 nodes per second just by:
- using a XOR in OsmPrimitive.hasEqualSemanticAttributes()
- checking if arrays are null or of the same size before creating and comparing the key maps in AbstractPrimitive.hasSameTags()
- looping on initial target layer primitives instead of current target layer primitives (there's no sensr to check for current primitives as they include primitives we have already merged from the source, right ?)
comment:3 Changed 17 months ago by Don-vip
In [4684/josm]:
comment:4 Changed 17 months ago by Don-vip
- Resolution set to fixed
- Status changed from new to closed
Note: See
TracTickets for help on using
tickets.



patch awaiting end of stabilization phase