Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#19597 closed enhancement (fixed)

validator is very slow when validating a complete complex multipolygon

Reported by: GerdP Owned by: GerdP
Priority: normal Milestone: 20.09
Component: Core validator Version:
Keywords: template_report multipolygon performance Cc:

Description (last modified by GerdP)

What steps will reproduce the problem?

  1. Load a complex multipolygon relation with all members (relation 1205151 Lake Huron)
  2. Enable preference "show informational level"
  3. run validator
  4. see that geometry.mapcss rules shows no progress
  5. cancel validator (works fine)
  6. select the multipolygon relation
  7. run validator
  8. see that geometry.mapcss rules shows no progress
  9. cancel validator doesn't seem to work

What is the expected result?

  • progress bar should show some progress
  • due to the complexity of the relation the tests cannot complete within a second, but more than a minute seems too long. Maybe this could be detected somehow so that complex relation is excluded from the tests.

What happens instead?

  • progress bar doesn't change for many seconds
  • validations takes many minutes, probably hours (didn't wait for the result)

Please provide any additional information below. Attach a screenshot if possible.

Main performance killer is this test:

area:closed:areaStyle ⧉ area:closed:areaStyle {
  throwOther: tr("Overlapping Areas");

Maybe we can avoid to test members of multipolygon relations against the parent relation?

Build-Date:2020-07-30 09:57:31

Identification: JOSM/1.5 (16809 SVN en) Windows 10 64-Bit
OS Build number: Windows 10 Home 1903 (18362)
Memory Usage: 929 MB / 1753 MB (455 MB allocated, but free)
Java version: 1.8.0_191-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Look and Feel:
Screen: \Display0 1920x1080 (scaling 1.0x1.0)
Maximum Screen Size: 1920x1080
Best cursor sizes: 16x16 -> 32x32, 32x32 -> 32x32
VM arguments: [-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:56288, -ea, -Dfile.encoding=UTF-8]
Program arguments: [--debug]
Dataset consistency test: No problems found

+ OpeningHoursEditor (35414)
+ PolygonCutOut (v0.7)
+ apache-commons (35362)
+ buildings_tools (35500)
+ continuosDownload (91)
+ ejml (35313)
+ geotools (35169)
+ jaxb (35092)
+ jts (35122)
+ merge-overlap (35248)
+ o5m (35248)
+ opendata (35513)
+ pbf (35446)
+ poly (35248)
+ reverter (35499)
+ undelete (35499)
+ utilsplugin2 (35487)

Attachments (0)

Change History (6)

comment:1 Changed 3 years ago by GerdP

Owner: changed from team to GerdP
Status: newassigned

comment:2 Changed 3 years ago by GerdP

Description: modified (diff)

comment:3 Changed 3 years ago by skyper

Component: CoreCore validator
Keywords: multipolygon performance added

comment:4 Changed 3 years ago by GerdP

Resolution: fixed
Status: assignedclosed

In 17037/josm:

fix #19597: validator is very slow when validating a complete complex multipolygon

  • CrossingFinder: don't check if a closed way is crossing a multipolygon relation when the way is a member of that relation (we already ignored this combination when the multipolygon is checked)

comment:5 Changed 3 years ago by GerdP

For the given example with Lake Huron the geometry.mapcss rules are now done in a few seconds, so I see no more need to improve the progress monitor. Cancelling also reacts in a reasonable time.

comment:6 Changed 3 years ago by GerdP

Milestone: 20.09

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain GerdP.
as The resolution will be set.
The resolution will be deleted.

Add Comment

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

Note: See TracTickets for help on using tickets.