Performance regressions with auto-updating marker colors (Inkscape >= 0.91)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Invalid
|
Medium
|
Unassigned |
Bug Description
The new feature in Inkscape 0.91 to color markers the same as the object introduces performance regressions when working with a larger number of stroked objects, both when applying markers as well as when dragging an individual object with markers applied.
1) Slowdown when applying a marker to a selection of multiple stroked paths:
The slowdown seems related to updating the marker popup menus in the 'Fill and Stroke' (AFAICT each marker is auto-forked for every path it is applied to). As the list of markers used in the current document grows longer, adding a marker to another path in the selection gets slower.
2) Slowdown when dragging a path with markers:
The signal monitoring a single selected path with applied markers for color changes (fill, stroke) seems to introduce a noticeable lagging when dragging such a path. Disabling either just "Update marker color when object changes" or the auto-update feature itself ("Color stock markers the same color as object") in the preferences immediately restores the expected responsiveness when dragging such a path. The slowdown happens after the 'Fill and Stroke' dialog was opened at least once in the current session for the current document window (otherwise the markers of a selected object do not update if the object's colors are changed e.g. via palette).
Steps to reproduce with attached test case
0) launch current trunk with default prefs, load attached test case
1) open 'Fill and Stroke' dialog
2) Ctrl+A in layer "Layer 2 - lines"
3) assign start, mid and end markers as seen in the figure below
→ increasingly poor performance
4) once this has finished, grab a single path and drag it around
→ dragging of path with marker lags noticeably
5) disable "Color stock markers the same color as object" (preferences)
6) drag the same path again
→ dragging is as responsive as expected
Reproduced with Inkscape 0.91 r13725 and 0.91+devel r14408 on OS X 10.7.5 (Glib 2.44.1, Gtk+/X11 2.24.28).
Notes:
The performance regressions do not occur when turning off the new feature in the preferences (and using markers with context paint values (SVG2) instead (see also bug #1504568)).
Confirmed on Windows XP, Inkscape trunk rev. 14506.
Assigning a marker takes about 30 seconds with a 3 years old i5 processor.