Pull to refresh

Сравнение геолокационных бинарных баз и их драйверов: GeoIP, Sypex Geo, TabGeo

Reading time 2 min
Views 25K
Особенностью данного тестирования является некая приближенность к реальным условиям, когда есть необходимость определять страну одного посетителя на лету за один запуск скрипта, то есть: один запуск скрипта — один ip-адрес. В подобном тестировании от zapimir использовался другой принцип, который, как мне кажется, имеет мало общего с реальной необходимостью: один запуск скрипта — определение нескольких тысяч ip-адресов в цикле.

Первое, что мы сделаем — это сравним базы:
Разработчик База Дата обновления Количество диапазонов, тыс Размер базы, Kb
GeoIP GeoLite Country 2014.06.03 93 688
Sypex Geo Sypex Geo Country 2014.06.20 90 365
TabGeo tabgeo_country_v4 2014.06.20 200 998

Sypex Geo может похвастаться самой маленькой базой из всех представленных, но и самой низкой точность (90 000 диапазонов). Самая высокая точность у TabGeo — 200 000 диапазонов, но и, в связи с этим, самая пухлая база. GeoIP – по всем параметрам занимает промежуточное положение. Все базы на данный момент имеют регулярные обновления.

А теперь непосредственно перейдем к тестированию производительности разных баз. Особенностью тестирования было определение времени работы скрипта для определения одного ip-адреса за один запуск, затем данные интерпретировались в количество запусков на одну секунду.
Разработчик База Количество запросов в секунду (медиана)
GeoIP GeoLite Country 460
Sypex Geo Sypex Geo Country 910
TabGeo tabgeo_country_v4 1400

Из таблицы видно, что самым неспешным решением для геолокации является GeoIP – всего 460 запросов в секунду, для самого распространенного и популярного решения — это очень плохо, и хочется отметить, что GeoIP2 от MaxMind совсем не выход из данной ситуации (это больше информационная база, чем база для геолокации).

Серебряным призером данного соревнования является база и драйвер от Sypex Geo – 910 обращений в секунду, что в два раза лучше, чем результаты показанные GeoIP. Но абсолютным лидером в данной номинации является TabGeo – 1400 запросов в секунду при равных условиях, что в более чем в 1,5 раза лучше, чем Sypex Geo.

Также небольшой прирост производительности дает меньшее количество обращений к диску, сравнение при условии: одно определение страны — один запуск скрипта, показало, что минимальное значение этого параметра у TabGeo – от 1 до 3 дисковых операций, у Sypex Geo – 4 и полным аутсайдером в данном сравнении является GeoIP — от 23 до 52 на одну инициализацию и одно определение страны по ip-адресу.

Немаловажным значением является и размер памяти занимаемый скриптом: TabGeo – 26 Kb, Sypex Geo – 110 Kb и GeoIP – 285 Kb.

Из представленных данных можно сделать вывод, что самое популярное решение геолокации GeoIP – является одновременно и самым худшим для реальных проектов. Sypex Geo – занимает промежуточное положение в данной иерархии. Ну, и абсолютным лидером практически по всем параметрам (из представленных баз) — является TabGeo.

Сайты испытуемых баз:
TabGeo
Sypex Geo
GeoIp
Tags:
Hubs:
+17
Comments 34
Comments Comments 34

Articles