Для высокопроизводительного кода на разных архитектурах вам может понадобиться выделение malloc-y, а не родовое новое. Это связано с тем, что вы могли бы обернуть его чем-то вроде mymalloc (), а затем использовать функции, зависящие от архитектуры, такие как те, которые реализуют правильное выравнивание, чтобы избежать промахов в кеше и выполнять другие отличные вещи, предоставленные производителем оборудования, например IBM (Bluegene) или Intel (MIC). Все эти оптимизированные процедуры распределения имеют структуру типа malloc.
Не самое элегантное решение из всех, но с учетом исходного исходного кода, должно быть в состоянии выполнить эту работу.
function find_closest_markers(event, n) {
var markers_distances = [];
for (i = 0; i < markers.length; i++) {
var d = google.maps.geometry.spherical.computeDistanceBetween(markers[i].position, event.latLng);
markers_distances[i] = {
distance: d,
marker: markers[i]
}
}
var closest_markers = markers_distances.sort((a, b) => {return a.distance-b.distance}).slice(0,n)
return closest_markers.map((item) => {return item.marker})
}