Modify

#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)

7159.patch (10.4 KB) - added by Don-vip 17 months ago.
patch awaiting end of stabilization phase

Download all attachments as: .zip

Change History (5)

comment:1 Changed 17 months ago by Don-vip

  • Description modified (diff)

Changed 17 months ago by Don-vip

patch awaiting end of stabilization phase

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]:

see #7159 - Layer merging performance

comment:4 Changed 17 months ago by Don-vip

  • Resolution set to fixed
  • Status changed from new to closed

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed .
as The resolution will be set. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.