- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
классец для определения страны пользователя по ип адресу. мб кому то пригодится
http://pyha.ru/forum/topic/4395.new#new
скорость работы
1 ip for 0,000171 sec
работает на "бинарной базе", может собирать базу из csv базы maxmind.
имхо получше мускуля, ага ;)
если пригодилась, можете отблагодарить :)
Z214962204619
спасибо!
Вещь! (с)
очередное "на тебе боже, что нам негоже" .
Ну ведь там же есть модуль на чистом пхп http://www.maxmind.com/app/php
неужели за это еще кто-то заплатил? Ниша решения непонятна.
встроенный их бенчмарк на базе Country :
php benchmark.php
Geoip Country
10000 lookups made in 0.932090997696 seconds
Geoip Country with memory cache
10000 lookups made in 0.854602098465 seconds
процессор, правда, самый топовый из lga775 :)
работает на "бинарной базе", может собирать базу из csv базы maxmind.
э.... а чем плоха бинарная база максмайнда?
netwind, если бы было не лень, я бы даже сравнил скорость ... может да, я дерьмо написал и тп и вы правы, а может и нет? платить не принуждал, да и никто не платит все равно, это "к слову"
bearman добавил 30.04.2010 в 03:40
dkameleon, незаметил, гляну на досуге
bearman добавил 30.04.2010 в 04:21
php benchmark.php
Geoip Country
10000 lookups made in 0.932090997696 seconds
Geoip Country with memory cache
10000 lookups made in 0.854602098465 seconds
процессор, правда, самый топовый из lga775
без кеша максмайнд отсосал ненагибаясь
1 ip for 0.000016debian:~/trunk#
ну и проц на всякий
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz
stepping : 6
cpu MHz : 3163.497
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips : 6331.14
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz
stepping : 6
cpu MHz : 3163.497
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips : 6327.04
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
debian:~/trunk#
bearman добавил 30.04.2010 в 04:23
bearman, ну если бд в мемори положить думаю будет не 0.16 а 0.016
bearman добавил 30.04.2010 в 04:23
или другими словами - скорость foreach'а при бенчмарке)
bearman добавил 30.04.2010 в 04:30
ну и чтобы не быть пустословом
Geoip Country
10000 lookups made in 1.1962389946 seconds
Geoip Country with memory cache
10000 lookups made in 0.948868989944 seconds
на том же сервере
bearman, я тоже сейчас вот адаптировал ваш бенчмарк и тоже получил сильно быстрее максмайнда. похоже специфика именно этой мелкой базы.
пошел подремлю часок :)
спасибо за спор
bearman добавил 30.04.2010 в 04:37
netwind, ну я хз как база максмайнда устроена внутри, но моя делает чтение порядка 15 байт данных из 2 файлов на поиск ипа если он попал в короткий диапазон и в среднем порядка 15 байт + 9*колво "непопавших" диапазонов, по всей бд в среднем на попадание в диапазон идет число не больше 5-10, поэтому байт 50 на ип грубо.
bearman добавил 30.04.2010 в 04:38
netwind, можно на адаптацию глянуть? интересно что там сделано)
можно в личку
bearman, ну вот именно выигрыш за счет начального быстрого позиционирования видимо срабатывает.
maxmind использует для всех баз одну и ту же похожую структуру radix tree http://en.wikipedia.org/wiki/Radix_tree, которая на больших объемах должна выигрывать за счет компактности ( база Org 140мб и она слишком забитая даже единичными IP, City 29Мб)
Ничего там особого не адаптировано, просто я подумал, что бенчмарк maxmind тормозит из-за rand() прямо в теле теста, но даже повторив тест как у вас с array_map и предварительной генерацией ничего сильно не изменилось.
Фактически, все упирается в опкоды php - где меньше циклов там и быстрее.
Для чего то серьезного все равно выгоднее собрать расширение, тесты они сами делали http://www.maxmind.com/app/benchmark.
netwind, а, я подумал, что
я тоже сейчас вот адаптировал ваш бенчмарк
вы в моем чтото еще изменили ))) там 5 строк)
кстати, array_map - гавно, она медленнее обычного foreach + func() это я заметил както раз, видимо пхп даже внутри форичит + call_user_func'ает ...
ну да, они исопльзовали стандартный "паттерн" так сказать для подобных вещей, мне просто было интересно это сделать :)
пошел хабр потроллю и в люлю, спокойной)
сколько строк IP в базе ?
DeveloperRu, порядка 120 000 диапазонов, у меня диапазоны разбиты на блоки для быстрого поиска, блоки проиндексированы, блоков порядка 150 тыс если не ошибаюсь
bearman добавил 30.04.2010 в 04:57
база стандартная, последняя скачанная с их сайта)