I am using Blender and Python to display realtime 3d status of data streaming in from the network. The EEVEE viewport usually runs at ~60fps and looks very smooth, however whenever an armature is changed or has keyframes I see the fps drop to nearly 15 - 20 fps which is quite low.
I have tried optimizing the mesh and ensure there are no modifiers. I think there are over 200 bones and I use a for loop in Python to update each one serially.
I was wondering what causes the drop in fps when the armature is changed? Does the entire mesh have to be recalculated?
Can I change precision or quality settings to improve performance?
I notice even without a mesh attached to the armature there is still a slight drop in fps, so maybe I am updating the armature very inefficiently?
And would it be possible to more efficiently update an armature in any way so that Blender does not lose so many fps?