How to improve performance with a lot of same prefab?

To create a level geometry, I’m Instantiate prefab 4000 times at the start(). So my level geometry created, when level starts.


With that having very low framerate, although there nothing else in the level right now.
The problem is Main thread, which keeps at ~330ms, although Renderer take just 2~4ms.
Draw calls - 12, saved by batching - 2000. All other statistics at minimum or very low.
What should I do to lower Main thread?

A couple of things to look into. Turning off the renderer on any object that are not currently being used will help. If some of the objects are static with respect to each other you can combine meshes. There are a couple of example scripts that are available when you install the standard asset package: in the “Standard Assets/Scripts/Utility Scripts” folder you will find CombineChildren and MeshCombineUtility scripts.

Then you need to find out what’s special about that prefab. How does it differ from the actual model? Is it composed of several individual models? Other prefabs? Do the models have animations? Are there Colliders in the prefab?

(please respond to all questions, all have significance)