On 01/10/2012 11:23 PM, Frederik Ramm wrote:
Hi,
whenver a license change layer is active and you have lots of objects
loaded, JOSM becomes noticeably slower.
I could use a little help here. Since many of you have tweaked JOSM's
drawing performance in the past, maybe you only need to take a quick
look at this drawing code
http://trac.openstreetmap.org/browser/applications/editors/josm/plugins/licensechange/src/org/openstreetmap/josm/plugins/licensechange/LicenseProblem.java
and you have an idea how it could be improved?
You can use QuadBuckets for the 'highlighted' collection. This helps a
lot if the user zooms in and has only few primitives in the current
viewport.
(In this case, you probably need to replace QuadBucketsT extends
OsmPrimitive by QuadBucketsT extends HasBbox and add a new
interface HasBbox.)
The sliding window of four consecutive nodes in the visit function is
there to determine whether linecaps need to be drawn or not.
Is it the trigonometry in drawSegment? (This is more or less copied from
similar code in the validation layer.)
You can draw a parallel line of fixed distance without trigonometry (see
the code in MapPainter [1]), but I'm not sure this will make a big
difference. Usually, most time is not spend in JOSM code, but in the
Java libs that actually do the painting.
Would it perhaps make sense to
cache the buffered outline instead of computing it each time?
Shouldn't be necessary, as far as I can tell.
[1]
http://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java#L271
Paul
___
josm-dev mailing list
josm-dev@openstreetmap.org
http://lists.openstreetmap.org/listinfo/josm-dev