Modify

Opened 7 months ago

Closed 4 months ago

Last modified 4 months ago

#15782 closed defect (wontfix)

Presets loading is very slow with Java 9+ / WebStart

Reported by: Don-vip Owned by: team
Priority: major Milestone:
Component: Core Webstart Version:
Keywords: performance java9 java10 presets javabug Cc:

Description

I noticed JOSM is very slow to load in WebStart with Java 9 or 10.
It appears the presets loading takes between 28 and 30 seconds with these versions (tested with 9.0.1 and 10-ea+39) while Java 8 only takes about 3 seconds.

I'm not sure why. probably linked to the fact Java WebStart runs with a security manager.

Maybe linked to JEP 232: Improve Secure Application Performance ?

Attachments (2)

15782.png (66.8 KB) - added by Don-vip 7 months ago.
15782_bis.png (32.1 KB) - added by Don-vip 7 months ago.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 7 months ago by Don-vip

In 13332/josm:

see #15782 - add debug logs

comment:2 Changed 7 months ago by Don-vip

Java 9.0.4 (--debug) run from Eclipse:

2018-01-17 00:44:28.983 FINE: Loading imagery preferences completed in  (1.7 s)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=stop_position && (train=yes || subway=yes || monorail=yes || tram=yes || light_rail=yes)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=stop_position && (train=yes || subway=yes || monorail=yes || tram=yes || light_rail=yes)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=stop_position && (train=yes || subway=yes || monorail=yes || tram=yes || light_rail=yes)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.425 FINE: Parsed search expression is railway
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=stop_position && (bus=yes || trolleybus=yes)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=stop_position && (bus=yes || trolleybus=yes)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=stop_position && (bus=yes || trolleybus=yes)
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.425 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.441 FINE: Parsed search expression is highway
2018-01-17 00:44:29.441 FINE: Parsed search expression is type=route
2018-01-17 00:44:29.441 FINE: Parsed search expression is public_transport=stop_position
2018-01-17 00:44:29.456 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:44:29.456 FINE: Parsed search expression is railway=subway_entrance
2018-01-17 00:44:29.456 FINE: Parsed search expression is amenity || public_transport=station
2018-01-17 00:44:29.472 FINE: Parsed search expression is highway=bus_stop || railway=station || railway=halt || railway=tram_stop
2018-01-17 00:44:29.472 FINE: Parsed search expression is highway=bus_stop || railway=station || railway=halt || railway=tram_stop
2018-01-17 00:44:29.472 FINE: Parsed search expression is highway=bus_stop || railway=station || railway=halt || railway=tram_stop
2018-01-17 00:44:29.472 FINE: Parsed search expression is highway=platform || railway=platform
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is tourism || amenity
2018-01-17 00:44:32.012 FINE: Parsed search expression is natural=peak || natural=volcano || mountain_pass=yes || natural=water || tourism=viewpoint || amenity=drinking_water || natural=spring || place=locality
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is tourism || amenity
2018-01-17 00:44:32.012 FINE: Parsed search expression is natural=peak || natural=volcano || mountain_pass=yes || natural=water || tourism=viewpoint || amenity=drinking_water || natural=spring || place=locality
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is tourism || amenity
2018-01-17 00:44:32.012 FINE: Parsed search expression is natural=peak || natural=volcano || mountain_pass=yes || natural=water || tourism=viewpoint || amenity=drinking_water || natural=spring || place=locality
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is power
2018-01-17 00:44:32.012 FINE: Parsed search expression is railway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:44:32.012 FINE: Parsed search expression is highway
2018-01-17 00:44:32.028 FINE: Parsed search expression is addr:housenumber || addr:interpolation || addr:housename
2018-01-17 00:44:32.028 FINE: Parsed search expression is waterway && !waterway=riverbank
2018-01-17 00:44:32.028 FINE: Parsed search expression is waterway && !waterway=riverbank
2018-01-17 00:44:32.028 FINE: Parsed search expression is waterway && !waterway=riverbank
2018-01-17 00:44:32.105 FINE: Presets read in 5.0 s

Java 9.0.4 (--debug) run from WebStart:

2018-01-17 00:43:00.513 FINE: Loading imagery preferences completed in  (1.2 s)
2018-01-17 00:43:07.220 FINE: Parsed search expression is public_transport=stop_position && (train=yes || subway=yes || monorail=yes || tram=yes || light_rail=yes)
2018-01-17 00:43:07.220 FINE: Parsed search expression is public_transport=stop_position && (train=yes || subway=yes || monorail=yes || tram=yes || light_rail=yes)
2018-01-17 00:43:07.220 FINE: Parsed search expression is public_transport=stop_position && (train=yes || subway=yes || monorail=yes || tram=yes || light_rail=yes)
2018-01-17 00:43:07.220 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.220 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.220 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.235 FINE: Parsed search expression is railway
2018-01-17 00:43:07.235 FINE: Parsed search expression is public_transport=stop_position && (bus=yes || trolleybus=yes)
2018-01-17 00:43:07.235 FINE: Parsed search expression is public_transport=stop_position && (bus=yes || trolleybus=yes)
2018-01-17 00:43:07.235 FINE: Parsed search expression is public_transport=stop_position && (bus=yes || trolleybus=yes)
2018-01-17 00:43:07.235 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.235 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.235 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.235 FINE: Parsed search expression is highway
2018-01-17 00:43:07.235 FINE: Parsed search expression is type=route
2018-01-17 00:43:07.282 FINE: Parsed search expression is public_transport=stop_position
2018-01-17 00:43:07.282 FINE: Parsed search expression is public_transport=platform
2018-01-17 00:43:07.282 FINE: Parsed search expression is railway=subway_entrance
2018-01-17 00:43:07.282 FINE: Parsed search expression is amenity || public_transport=station
2018-01-17 00:43:07.562 FINE: Parsed search expression is highway=bus_stop || railway=station || railway=halt || railway=tram_stop
2018-01-17 00:43:07.562 FINE: Parsed search expression is highway=bus_stop || railway=station || railway=halt || railway=tram_stop
2018-01-17 00:43:07.562 FINE: Parsed search expression is highway=bus_stop || railway=station || railway=halt || railway=tram_stop
2018-01-17 00:43:07.562 FINE: Parsed search expression is highway=platform || railway=platform
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is tourism || amenity
2018-01-17 00:43:26.453 FINE: Parsed search expression is natural=peak || natural=volcano || mountain_pass=yes || natural=water || tourism=viewpoint || amenity=drinking_water || natural=spring || place=locality
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is tourism || amenity
2018-01-17 00:43:26.453 FINE: Parsed search expression is natural=peak || natural=volcano || mountain_pass=yes || natural=water || tourism=viewpoint || amenity=drinking_water || natural=spring || place=locality
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is tourism || amenity
2018-01-17 00:43:26.453 FINE: Parsed search expression is natural=peak || natural=volcano || mountain_pass=yes || natural=water || tourism=viewpoint || amenity=drinking_water || natural=spring || place=locality
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is power
2018-01-17 00:43:26.453 FINE: Parsed search expression is railway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway || route=ferry
2018-01-17 00:43:26.453 FINE: Parsed search expression is highway
2018-01-17 00:43:26.453 FINE: Parsed search expression is addr:housenumber || addr:interpolation || addr:housename
2018-01-17 00:43:26.453 FINE: Parsed search expression is waterway && !waterway=riverbank
2018-01-17 00:43:26.453 FINE: Parsed search expression is waterway && !waterway=riverbank
2018-01-17 00:43:26.453 FINE: Parsed search expression is waterway && !waterway=riverbank
2018-01-17 00:43:26.485 FINE: Presets read in 27.3 s

comment:3 Changed 7 months ago by Don-vip

Milestone: 18.01

comment:4 Changed 7 months ago by Don-vip

The loading of svg icons is a lot slower with java 9:

2018-01-17 01:09:32.566 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/gondola.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:09:32.598 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/gondola.svg java.awt.Dimension[width=-1,height=24]
2018-01-17 01:09:32.598 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/cable_car.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:09:32.644 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/cable_car.svg java.awt.Dimension[width=-1,height=24]
2018-01-17 01:09:32.644 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/chair_lift.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:09:32.691 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/chair_lift.svg java.awt.Dimension[width=-1,height=24]
2018-01-17 01:09:32.691 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/mixed_lift.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:09:32.723 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/mixed_lift.svg java.awt.Dimension[width=-1,height=24]

compared to java 8:

2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/gondola.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/gondola.svg java.awt.Dimension[width=-1,height=24]
2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/cable_car.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/cable_car.svg java.awt.Dimension[width=-1,height=24]
2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/chair_lift.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/chair_lift.svg java.awt.Dimension[width=-1,height=24]
2018-01-17 01:29:54.445 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/mixed_lift.svg java.awt.Dimension[width=-1,height=16]
2018-01-17 01:29:54.461 FINEST: createImageFromSvg: jar:https://josm.openstreetmap.de/download/josm-latest.jar!/images/presets/transport/aerialway/mixed_lift.svg java.awt.Dimension[width=-1,height=24]

(web start, trace, same command line)

Last edited 7 months ago by Don-vip (previous) (diff)

Changed 7 months ago by Don-vip

Attachment: 15782.png added

comment:5 Changed 7 months ago by Don-vip

This is confirmed by profiling:

Changed 7 months ago by Don-vip

Attachment: 15782_bis.png added

comment:6 Changed 7 months ago by Don-vip

More profiling:

comment:7 Changed 7 months ago by Don-vip

Keywords: javabug added
Milestone: 18.01

For me it's a Java bug. Created report 9052342.

comment:9 Changed 4 months ago by Don-vip

As Oracle kills WebStart in Java 11, they closed the bug as won't fix: https://bugs.openjdk.java.net/browse/JDK-8196053

comment:10 Changed 4 months ago by Don-vip

Resolution: wontfix
Status: newclosed

Thus, nothing we can do. We will have to replace WebStart by something else. Right now, I don't know what.

comment:11 Changed 4 months ago by Don-vip

See #16047 / #16204 for WebStart contingency plans based on IcedTea-Web from RedHat.

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.

Add Comment


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

 
Note: See TracTickets for help on using tickets.