Opened 6 years ago
Last modified 25 hours ago
#20366 new enhancement
[partial patch] JOSM rendering is very slow especially on UHD displays
| Reported by: | *Martin* | Owned by: | team |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Core | Version: | latest |
| Keywords: | performance hidpi | Cc: |
Description
After upgrading to UHD (4K) monitor I experience slow rendering in JOSM which makes mapping no more pleasant. Slowdown is higher if I move map outside of boundaries of downloaded data (see attached video) but it is also slow on normal editing, or with just panning signle layer of background imagery.
JOSM Version: 17447 (reproducible also on current josm-tested)
JRE: OpenJDK 16 (reproducible also on OpenJDK 15)
OS: Debian Bullseye
HW: Radeon RX 5500 (HW acceleration enabled), AMD Ryzen 3900X, 64GB RAM
I run JOSM like this:
java -Dsun.java2d.uiScale=2 -Dsun.java2d.opengl=True -jar ~/josm-tested.jar
In the 2nd line of the console output I see:
OpenGL pipeline enabled for default config on screen 0
Parameter -Dsun.java2d.opengl=True actually makes no difference for the speed.
Attachments (1)
Change History (11)
by , 6 years ago
| Attachment: | slow-josm.mp4 added |
|---|
comment:1 by , 6 years ago
| Keywords: | performance hidpi added |
|---|
comment:2 by , 5 years ago
comment:3 by , 5 years ago
I tried launching JOSM with the -Dsun.java2d.uiScale=1 flag and that made the performance much smoother. Here's a short video comparison: https://youtu.be/bKO1RqSx3c4
Looks to me like the UI scaling has a significant negative impact on performance.
comment:4 by , 5 years ago
General (java) system settings and the graphic card driver might come into play, here. The wrong native resolution might be an indicator.
@ezekielf:
Please, try it with java 17 and check your general java system settings. Do other java programs show the same behavior on your system?
follow-up: 6 comment:5 by , 5 years ago
I've tried with java 17 and am seeing the same behavior. I normally use JOSM via OpenWebStart and that is using java 11. What general java system settings would be useful to see? JOSM is the only java program I use, so I have nothing to compare it to.
comment:6 by , 5 years ago
Replying to ezekielf@…:
I've tried with java 17 and am seeing the same behavior.
Thanks, but not the best news as this would have been an easy solution.
I normally use JOSM via OpenWebStart and that is using java 11.
How did you install JOSM? Current macOS-package ships java 17.
What general java system settings would be useful to see?
Sorry, I have no clue about macOS. Someone else needs to answer this and probably talk off.
comment:7 by , 5 years ago
I did a bit of profiling for #21901, and the hatching was surprisingly expensive when panning. I'd expect it to be the same when not panning.
comment:9 by , 12 months ago
| Summary: | JOSM rendering is very slow especially on UHD displays → [partial patch] JOSM rendering is very slow especially on UHD displays |
|---|
comment:10 by , 25 hours ago
I've got a 240 Hz 4K monitor for testing, and this issue has become very apparent. It turned out that the MapView rendering was happening on the CPU instead of the GPU, and there were a bunch of other issues too. Like wrong imagery cache size calculation, cache read limited by the host limit queue, and another disk cache reading slowdown due to double read. All fixed locally.
At the end, I reduced the rendering time from 12–13 ms/frame to 1.1 ms/frame and there are less (almost no) black loading tiles you may know when you pan the map. I'm quite happy with the results.
Patch will follow soon.



I am also experiencing this issue. The status report below lists the scaled resolution of 2560×1440, but the native display resolution is 3840×2160. If I resize the JOSM window to around 1/4 to 1/3 of the screen, panning, zooming, and draw operations are smooth and feel similar to running JOSM on the laptop's built in display (2880×1800) or on the 1920×1200 external display I used previously. With the JOSM window filling the screen on the 3840×2160 display, panning, zooming, and draw operations are very laggy.