When spacing > 0 is used, the placement finder invokes additional code to measure lines and determine chunks upon which to try placing multiple labels.
spacing > 0
In past profiling we've seen this is, understandably, much more expensive that the default path of simply trying to place a single label per line segment.
We should look for optimizations in the spacing code, and if no major optimizations can be found or are reasonable then the expensive nature of using spacing should be better documented along with alternative and faster methods to approximate nice repeated labeling (like splitting long line segments before rendering).
I'm rewriting large parts of our placement finder and will try to make this reasonable fast.
"spacing" is not the real problem. label-position-tolerance and the fact that this is implied to be spacing/2 is the problem. Tracking this issue in #1387.