Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

Самый лучший GEODIST() к западу от Рио-Гранде Бэкенд, теория программирования

Доклад принят в программу конференции
Андрей Аксенов
Авито, Sphinx

Пишет код на всём подряд, показывает другим как. В удачные дни код удается сносить, это обязательно показывает другим и заставляет "точно так же" втройне сильнее. Всю сознательную жизнь из этого выходят разные движки, прямо проклятие какое-то.

Тезисы

Внутри движка Sphinx есть умеренно нетривиальная реализация функции GEODIST(). Внутри скомбинированы пара-тройка разных математических формул, чтобы обеспечить достаточную точность для всех возможных случаев разных расстояний между точками, плюс пара-тройка разных полустандартных оптимизационных трюков поверх этого, чтобы обеспечить еще и достаточную скорость.

Кажется, что небезынтересно разобрать детали этой реализации и продемонстрировать процесс её конструирования и оптимизации. Как дошли до жизни такой, какими именно шагами, как пригодилась (в кои веки) математика с первого курса, какие оптимизационные трюки снова, как и в 1959 году, неизменно сработали.

C/C++
,
Оптимизация производительности

Другие доклады секции Бэкенд, теория программирования

Rambler's Top100