Using the file 'drawing-spiro-test.svg' from https://bugs.launchpad.net/inkscape/+bug/906952 to test the response to a dragging operation, the majority of the time delay appears to be in the routine Shape::ConvertToShape in ShapeSweep.cpp. This is called from the routine 'item_outline' shortly after the call to Path::Coalesce which was previously made to be optional in rev 10835. The 'item_outline' routine performs a two-stage modification of the original path, before calculating the bbox, as in the attached figure, crossover.svg. In the first stage the original path (top) is converted to an outline (middle) using the routine Path::Outline. This contains some unnecessary, unwanted paths which are internal to the outline. In the second stage, a number of calls are made to Shape routines to remove these unwanted paths, to produce the bottom figure. This second stage is consuming most of the CPU time in this routine, and it does not affect the bbox as far as I can tell. I believe the unwanted paths will always be internal to the outline. For this reason the 'coalesce' option has been expanded and renamed to be a 'bbox_only' option, which entirely skips the second stage of calculation if this option is set true. This option also bypasses the code which incorporates the effect of markers in 'item_outline' since it is redundant. The routine 'sp_shape_bbox' already includes the effect of markers. committed to rev 11010. http://inkscape.13.n6.nabble.com/file/n4500489/crossover.svg crossover.svg
-- View this message in context: http://inkscape.13.n6.nabble.com/Inkscape-slowing-down-tp2854391p4500489.htm... Sent from the Inkscape - Dev mailing list archive at Nabble.com.