The problem
Node3D has a property called top_level. False by default, it prevents nodes from inheriting their parent transformation. Usually, this property is not needed nor wanted; a common composition pattern of 3D objects is by nesting 3D nodes that have to move along together.

Internally, every time the top level node (Character3D) transform changes, all children nodes have to change their transform too in relation to their parent, and their parent, and their parent… As you nest nodes, this becomes a large addition of matrixes that can get really taxing.
What do we do about it
Tying 3D nodes together does not require inheritance. Usually, you just need children nodes to share the same exact global_transformof their parent. There’s no need for inheritance, because that becomes an addition of matrixes, even if a trivial one. What you’re actually looking for is just directly setting their transform as the same of their parent.
Update the bare minimum. For symmetrical or fix shapes, transforming the rotation may not be necessary. If rotation is only a visual necessity, just rotate the mesh node without triggering the whole tree. This becomes relevant in multiplayer games.
Be clever about node structuring. In the above image, the result is the same as in the bottom image. The difference is that in the former, the mesh node is performing an addition of 3 matrixes instead of 2 as in the latest.

Also make sure to set scene roots as top level if you organize your SceneTree in a similar way to this: you know the World node is not going to move, but their transform is being added to the others.
Don’t transform twice. It is common practice to offset transformations after their transformation has already been set by built-in processes. If you know you’re going to end up transforming a node, as it could be the case for cameras or meshes, directly transform and omit default transformations.
Use less 3D nodes. Godot’s node philosophy is unavoidable and pleasant to work with, but (in my opinion) designed for 2D, segmented & predictable games. Use less 3D nodes anytime you are given the chance and it does not compromise on ease of use.
Source
I was scavenging the internet looking after optimization techniques for 3D Godot and came across this blog post by Dre Dyson. Although the blog is catered towards network costs, it’s still useful advice for multiplayer games, even if P2P, and CPU savings.





