Hola AlbertC,
no hay una manera más eficiente de poner los marcadores en un bucle... al mismo tiempo, la documentación de GoogleMaps dice que todo se pone muy lento cuando se intentan mostrar más de 20 marcadores a la vez, por el tiempo que tarda la geolocalización.
Por esto lo que generalemtne se hace es implementar una caché que guarde la posición de los marcadores con su latitud y longitud, de forma tal que se muestren siempre que sea posible por ese criterio y no geolocalizando, que es la forma en que tarda y da problemas.
Dónde estará la caché depende de la arquitectura de tu app. Si es nativa puede ser en SQLite, si es híbrida puede ser en LocalStorage y si es web puede ser en LocalStorage o del lado del servidor.
Saludos!