У меня есть векторная функция, которая вычисляет расстояние до большого набора точек. Чтобы улучшить производительность, я ограничиваю количество очков, выбирая только нужные. Итак, вместо distanceToPoint(points.x)
Я использую distanceToPoint(points.x(IDX))
. Когда я занимаю нужное время вычисления, я вижу, что, когда индексированная часть составляет более 75% данных, она занимает больше времени. Что я могу сделать, чтобы преодолеть это, или увеличить производительность, чтобы сказать% 85? Минимизировать накладные расходы индексации
EDIT: Я добавляю результаты после переключения логического индексирования, очевидно, лучше. Кажется, что есть потеря производительности на низком% 10, однако (видимо, если вы просматриваете изображения друг над другом)
Ваш 'IDX' состоит из целых чисел, представляющих позиции в вашем' points.x' или это логический массив? – foglerit
- это целые числа позиций, возвращаемые функцией 'find (criteria)' – zamazalotta
Вместо 'find', попробуйте' IDX = points.x == критерии' (или любую другую логику, определенную 'IDX'). Таким образом вы создадите логический массив, который во многих случаях приведет к более быстрой индексации – foglerit