Debugging Rig performance
To begin with, are you sure that the rig itself is a problem? I mean what if you delete everything except the armature(s)? Will it remain being hard for FPS of your scene. I've made &amp; seen different rigs, including very complex, but I've never seen FPS going down because of Armature constraints/drivers/whatever. But OK, if the rig is the problem, I'd start with these suggestions:

cyclic dependencies: bone/object/property A somehow depends on bone/object/property B while bone/object/property B somehow depends
on bone/object/property A (constraints, drivers, parent-child
relationships - and take hierarchy into account, because it's often
quite not obvious, that 10th child of bone A depends on 12th child of
bone B &amp; vice cersa); you can check if there any cyclic dependencies
in your file by toggling the command line, it will be shown there
along with some other helpful info: errors, missing paths, lost
drivers and so on;

action constraints: I've noticed that among all the constraints Action constraints are the hardest ones - especially when there are
100+ of them (I had even much more when made the rig with large
amount of facial emotions);

drivers with complex logic: large expressions with many variables and
modifiers can potentially slow down FPS;

driven shape keys: if you use shape keys with drivers on them, it can
really slow down the scene, I had mesh with 50+ driven shape keys and
it had been freezing my FPS like hell, and when I tried to delete
them all, FPS increased from 5 to 30;

other complex modifiers: OK, let's say there's no more Armature
modifiers and our mesh is no longer connected to its rig (well, at
least - it's no longer obviously connected); but what about other
modifiers? Lattice, Mesh Deform, Laplacian Deform and other deformers
like that can catastrophically reduce your FPS.


So, there's no scripted way to find the bottleneck of Mesh-Rig relationships, and I just tried to mention some of the approaches I use in my work.