Modify

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#16778 closed defect (fixed)

Text filtering relations when 'restriction' relations present slows pan/zooms

Reported by: Skybunny Owned by: team
Priority: normal Milestone: 18.09
Component: Core Version:
Keywords: template_report performance Cc:

Description (last modified by Skybunny)

What steps will reproduce the problem?

  1. Download this in the Overpass API:

(type:way and ref:CTH) in "Marathon County, Wisconsin"

  1. Search for the following:

type:way

  1. 'Download parent ways and relations' of the ~560 ways you'll get. You'll get about 180 relations.
  2. (This is important!) Search for something in the 'Relations' search box to filter them. Example: 'County' or 'restriction'. Not only will it take a long time to enter text in the box, but once this happens, you get the results that follow. Performance gets horrible and stays that way.

(If you do not do (4), panning and zooming will remain fast regardless).

What is the expected result?

Zooming in and out should be smooth/quick.

What happens instead?

If (and only if) the restrictions that will be downloaded here are "in scope", meaning they have not been filtered in the relations search box, zooming/panning is very very slow/poor performance. The following searches in the Relations window will prove this out:

'County Highway': zooming in and out is fast; no relations are in the filter at all.
'restriction': zooming is 'very' slow.
NULL (no search term): zooming is 'very' slow.
'no_u_turn' (only two hits returned): zooming is pretty fast.
'no_left_turn' (40 hits returned): zooming is slow.

Purging the restriction relations will have the same basic effect. Suddenly, zooming/rendering performance improves.

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

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2018-09-23 15:17:18 +0200 (Sun, 23 Sep 2018)
Revision:14271
Build-Date:2018-09-24 01:32:44
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (14271 en) Mac OS X 10.14
OS Build number: Mac OS X 10.14 (18A389)
Memory Usage: 411 MB / 5120 MB (232 MB allocated, but free)
Java version: 10.0.2+13, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: Display 69680128 1440x900
Maximum Screen Size: 1440x900
Dataset consistency test: No problems found

Plugins:
+ FastDraw (34510)
+ apache-commons (34506)
+ ejml (34389)
+ geojson (87)
+ geotools (34513)
+ jts (34524)
+ opendata (34662)
+ pbf (34576)
+ utilsplugin2 (34506)

Last errors/warnings:
- W: No configuration settings found.  Using hardcoded default values for all pools.
- W: java.net.SocketException: Socket closed
- E: java.net.SocketException: Socket closed

EDIT: Step (4), filtering the relations returned, which triggers the performance problem.

Attachments (0)

Change History (7)

comment:1 by Skybunny, 6 years ago

Description: modified (diff)
Summary: Existence of 'restriction' relations makes zooming/panning unbearably slowText filtering relations when 'restriction' relations present slows pan/zooms

comment:2 by Don-vip, 6 years ago

Keywords: performance added

comment:3 by naoliv, 6 years ago

The hot spot is in sun.java2d.SunGraphics2D.drawImage() called by org.openstreetmap.josm.tools.ImageResource.getImageIcon()
https://i.imgur.com/yzYE0qd.png

comment:4 by naoliv, 6 years ago

BTW, I am also feeling a freeze of some seconds (also at sun.java2d.SunGraphics2D.drawImage()) when creating/removing relations in a reasonably large dataset.

comment:5 by Don-vip, 6 years ago

Milestone: 18.09

comment:6 by Don-vip, 6 years ago

Resolution: fixed
Status: newclosed

In 14284/josm:

fix #16778 - cache padded icons to improve performance when filtering relations

in reply to:  4 comment:7 by Skybunny, 6 years ago

Replying to naoliv:

BTW, I am also feeling a freeze of some seconds (also at sun.java2d.SunGraphics2D.drawImage()) when creating/removing relations in a reasonably large dataset.

If 14284/josm doesn't improve performance for 'creating/removing relations in a reasonably large dataset', please open another ticket for your reproducible use case, because that may be a different performance problem.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.