Efficiently create hundreds of meshes

So in my project there is a need to create the map procedurally (in runtime). However simple it requires to make hundreds if not thousands of a single prefab then combining them into a couple meshes. This obviously gets pretty messy to code and is a hard hit to the CPU for a couple seconds. Is there any other way besides instantiating every single segment then combining them into a couple meshes because this seems like a crude way to do it. Or is there a way that makes it easier on the CPU, and quicker?

Rather than generating the pieces as objects that you then combine the meshes of, the alternative is to build the (combined) mesh directly. See the Mesh documentation for details.