Modify

Opened 14 years ago

Closed 13 years ago

#715 closed defect (fixed)

[PATCH] Rendering speed without drawing helper line

Reported by: fatbozz Owned by: framm
Priority: critical Milestone:
Component: Core Version: latest
Keywords: lag render hell Cc: fatbozz

Description

Latest JOSM releases are very slow in rendering. When i want to move node and move precise to another place, this make me crazy.
Im using josm in wireframe mode, and turned off arrows, but its crappy. Loaded osm file is about 750k. GPX has 6k5 points.

Attachments (2)

josm-715.diff (917 bytes) - added by dnaber 14 years ago.
fast if draw.helper-line= false and makes draw.helper-line default to false
josm-715-v2.diff (1001 bytes) - added by dnaber 14 years ago.
new version, doesn't break status information anymore

Download all attachments as: .zip

Change History (10)

comment:1 Changed 14 years ago by framm

With or without active WMS background?

comment:2 Changed 14 years ago by Asdert

With or without active WMS background - all the same.

I think problem in this:

  • helper line from last node to mouse cursor (disable with edit.helper-line=false)

Option "edit.helper-line=false" don't work. I can't disable this feature/With this "helper line" CPU utilization up to 100% when move or add node. In rev. 607 all ok.

comment:3 Changed 14 years ago by Asdert

I tested rev. 607 and 609

607 - ok
609 - rendering hell :)

find, which helper-line disable with draw.helper-line=false, but this don't really help.

Maybe, problem in this:

  • additional information in status bar about length, heading, and angle of segment being drawn

CPU up to 100% when simply move cursor on map.

Changed 14 years ago by dnaber

Attachment: josm-715.diff added

fast if draw.helper-line= false and makes draw.helper-line default to false

comment:4 Changed 14 years ago by dnaber

Could you please try the attached patch?

comment:5 Changed 14 years ago by framm

I guess the problem is that the extra info shown in the boxes belos the drawing area are computed in the main drawing thread. Imi originally had a mechanism where the status info was done in an extra thread that would (more or less) only run if there's nothing else to do, so that fast mouse moving or so would simply not update the info. I guess I have broken that and need to revisit... I personally experience abysmal drawing performance but that's because I am using X over ethernet and Java is known to suck at that.

Changed 14 years ago by dnaber

Attachment: josm-715-v2.diff added

new version, doesn't break status information anymore

comment:6 Changed 14 years ago by dnaber

The problem is the rendering of the helper line (and thus of everything) on every move of the mouse, not the calculation. My first patch broke that calculcation, new patch attached (not tested much, but status information still works and performance is better when using draw.helper-line=false).

It would be nice if we could make use of Swing's setClip()/getClipBounds() feature to make sure that only the area that's really affected is rendered (i.e. the line itself) and not the complete screen, but I'm not sure how to do that yet.

comment:7 Changed 13 years ago by anonymous

Summary: Rendering hell[PATCH] Rendering speed without drawing helper line

comment:8 Changed 13 years ago by anonymous

Resolution: fixed
Status: newclosed

This patch has been applied in r642, we just forgot to close the ticket then.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain framm.
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.