Why does the FPS in EEVEE engine when armature is changed?

Hello

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?

Thanks!

afaik this is how blender and eevee is unfortunately coded

there is no much you can do about that

if you have normal maps you can try: