Modify

Ticket #7159 (closed defect: fixed)

Opened 5 months ago

Last modified 5 months ago

Layer merging performance

Reported by: Don-vip Owned by: team
Priority: normal Component: Core
Version: latest Keywords:
Cc:

Description (last modified by Don-vip) (diff)

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

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

Change History

comment:1 Changed 5 months ago by Don-vip

  • Description modified (diff)

Changed 5 months ago by Don-vip

patch awaiting end of stabilization phase

comment:2 Changed 5 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 5 months ago by Don-vip

In [4684/josm]:

see #7159 - Layer merging performance

comment:4 Changed 5 months ago by Don-vip

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

Add a 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.