Сообщение от x-yuri
			 
		
	 | 
	| 
		namo86, начать стоит с того, зачем столько объектов на карте? Может их можно не все сразу выводить? Расскажи поподробнее
	 | 
	
Задача состоит в том, чтобы вывести данные из GPX файла, например такого: 
http://www.gpslib.ru/tracks/info/130..._14-35-57.html ... Точек: 50357 ... Основная часть данных это координаты трека (google.maps.Polyline), код получился примерно такой:
var point = new google.maps.LatLng
(
	_this.trackData.points[progressCurent].gps.lat,
	_this.trackData.points[progressCurent].gps.lng
);
if( !_this.hasOwnProperty('googleMapTrackPath') )
{
	_this.googleMapTrack = new google.maps.Polyline
	({
		strokeColor: '#2a72a8',
		strokeOpacity: 0.5,
		strokeWeight: 5,
		map: _this.googleMap
	});
	_this.googleMapTrackPath = _this.googleMapTrack.getPath();
}
_this.googleMapTrackPath.push(point)
Как уже писал, если не использовать setTimeout, при выводе браузер просто зависает, невозможно понять, работает он или висит и сколько он ещё будет грузиться. С помощью setTimeout проблема полностью решается, единственный нюанс это время загрузки, но и это думаю не такая уж большая проблема, самый оптимальный вариант как мне видится, увеличить количество обрабатываемых точек за один выполнение функции setTimeout, можно даже подумать насчет автобалансировщика нагрузки, с помощью пресловутой функции (new Date()).getTime(); и в случае быстрого выполнения одного цикла, добавлять максимальное количество обрабатываемых точек. 
Кстати если есть материалы по этому поводу, былобы любопытно почитать.