Do empty transforms take up much CPU power?

So long story short, I’m developing a game for Mobile set in a city and there are a lot of objects being brought in and out of play as the player moves about.

I have tried numerous methods for seamlessly loading in/out objects.

First I tried instantiating and destroying objects for loading/unloading. This had noticeable spikes for even loading in something simple like a generic 3D box.

Second attempt, I put the Instantiating/Destroying calls into their own Coroutines, this made the spikes less severe, but they were still noticeable.

Thirdly, I decided to pre-instantiate all the objects I’d need and then keep all the ones not in play as deactive (SetActive(false)). It turns out that setting active to true (even done inside a coroutine) had worse performance than instantiating the objects.

So, I finally arrived at my last idea for loading. I preloaded all the needed objects, then manually went through each one’s children, disabling each component that could use up CPU. Such components as scripts, renderers, colliders, audio sources, particle systems, rigidbody (set to isKinematic = true) etc were all disabled, leaving only an object with children transforms.
Now I can finally enable an object (enable all its components) and the game has no spikes in performance.

However, this last solution has its own draw back. If I preload too many objects the games FPS will be significantly impacted. Event though there is nothing enabled inside the object besides its transforms.

So my question is, does having many transforms (non moving) in the scene cause a significant hit to the CPU usage? and, If so, what is the best way to do continuous loading/unloading of game objects for Mobile?

put them all in a static array within a script that is init but not updated , create a method to return the ref w/ param an index . But the simpliest solution is to design your architecture first . Nothing should unused for no good reasons .