EDIT: They don’t. They slow down Blender about as much as they ought to. It’s something else with what I’m doing.
I’m working on a model with a lot of constraints and a lot of bones, and it seems like it leads to some serious slowdown, and I can’t wrap my head around it. I don’t have any loops. This is particularly noticeable when undoing a bone transformation in pose mode.
I’ve implemented some of these constraints on a per-vertex basis in vertex shaders and I know they’re not a big deal even on a per-vertex basis, much less on a per-bone basis. A good example is limit distance, which seems to create a lot of slowdown even though it ought to be the simplest computation in the world. I’m not familiar with IK algorithms, but my IKs aren’t responsible, at least not alone responsible, for the slow down; speed is fantastic with just the IKs. And the way these things ought to be evaluated, serially, each bone transformation feeding the next, I can’t see how constraints would interact in any way except additively (not multiplicatively, not exponentially.)
What is Blender doing? Is it doing some permutation thing? Is it just trying to be too smart? Is there some way that I could just tell Blender what order to evaluate my bones so that it stops thinking so hard?