Modify

Opened 7 years ago

Closed 7 years ago

Last modified 6 years 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 7 years ago.
15782_bis.png (32.1 KB ) - added by Don-vip 7 years ago.

Download all attachments as: .zip

Change History (17)

comment:1 by Don-vip, 7 years ago

In 13332/josm:

see #15782 - add debug logs

comment:2 by Don-vip, 7 years ago

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 by Don-vip, 7 years ago

Milestone: 18.01

comment:4 by Don-vip, 7 years ago

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 years ago by Don-vip (previous) (diff)

by Don-vip, 7 years ago

Attachment: 15782.png added

comment:5 by Don-vip, 7 years ago

This is confirmed by profiling:

by Don-vip, 7 years ago

Attachment: 15782_bis.png added

comment:6 by Don-vip, 7 years ago

More profiling:

comment:7 by Don-vip, 7 years ago

Keywords: javabug added
Milestone: 18.01

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

comment:9 by Don-vip, 7 years ago

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 by Don-vip, 7 years ago

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 by Don-vip, 7 years ago

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

comment:12 by Klumbumbus, 6 years ago

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

comment:13 by Don-vip, 6 years ago

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 by Klumbumbus, 6 years ago

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 by Don-vip, 6 years ago

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