Modify

Opened 22 months ago

Closed 19 months ago

Last modified 12 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: stoecker

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 21 months ago.
15782_bis.png (32.1 KB) - added by Don-vip 21 months ago.

Download all attachments as: .zip

Change History (17)

comment:1 Changed 22 months ago by Don-vip

In 13332/josm:

see #15782 - add debug logs

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

Milestone: 18.01

comment:4 Changed 22 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 22 months ago by Don-vip (previous) (diff)

Changed 21 months ago by Don-vip

Attachment: 15782.png added

comment:5 Changed 21 months ago by Don-vip

This is confirmed by profiling:

Changed 21 months ago by Don-vip

Attachment: 15782_bis.png added

comment:6 Changed 21 months ago by Don-vip

More profiling:

comment:7 Changed 21 months ago by Don-vip

Keywords: javabug added
Milestone: 18.01

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

comment:9 Changed 19 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 19 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 18 months ago by Don-vip

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

comment:12 Changed 12 months ago by Klumbumbus

So atm it is recommended to stick to Java 8 if you use webstart?

comment:13 Changed 12 months ago by Don-vip

Yes. Java 9 and 10 are already obsolete, and Java 11 does not provide WebStart anymore.
Right now the best solution is to stick to Oracle Java 8. For end-user consumers, they say they will provide public updates until end of 2020 at least: https://www.java.com/en/download/release_notice.jsp
I hope AdoptOpenJDK will include IcedTea-Web (a free implementation of WebStart done by RedHat) in later builds, so we can abandon Oracle in 2019 or 2020 and switch from Java 8 to Java 11 or later.

comment:14 Changed 12 months ago by Klumbumbus

Cc: stoecker added

I think there should be some hint on wiki:/WikiStart to use Java 8 if you use webstart and Java 11 if not!?

comment:15 Changed 12 months ago by Don-vip

Not needed. Oracle 10 WebStart should soon redirect users to latest Java 8 update.

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.