Иван Сагалаев хорошо пишет про "найм"

топ 100 блогов ivan_gandhi20.07.2012 НАЙМ: ВЫ ВСЁ ДЕЛАЕТЕ НЕ ТАК

Под кутом - решение задачи.

Итак задача - есть логи, ip->nBytes, понятно, что ip может повторяться; есть таблица разумного размера, ip range->country. Выдать top ten countries, со счётчиками.

Решение.
1. Загоним в память функцию, ip->country; реализовать это, по диапазонам - куча есть решений, дерево диапазонов и т.п. Последний раз имплементировал год назад в чучах, предпоследний - два года назад в танге.

2. Изготовляем таблицу счётчиков, страна -> счётчик. Стран всего меньше 300.

3. Пробегаем один раз по логам, для каждой строчки находим страну и прибавляем число байтов в таблицу счётчиков.

4. Сканируем таблицу счётчиков, складывая ну, к примеру, в priority queue на десять элементов. Ну или если хотите, можно и отсортировать, 300 стран, не проблема - и взять первые 10.

Оставить комментарий



Архив записей в блогах:
уважаемые труженики скальпелей и таблеток, припадаю к вашим стопам, почтительно ...
Что-то совсем я расслабилась, но все еще не чувствую себя отдохнувшей. Однако пора входить в мир фэнтези и настраиваться на нужную волну. Итак, легенда: "Есть у людей-рысей одна реликвия. Она священна и хранится у главы клана, передаваясь от сына ...
. Не знала... Оказывается, плаценты детей, рождённых в больнице, используются в косметическом бизнесе. Вот только несколько российских фирм: http://www.placentol.ru/about/ http://www.placentol.com.ua/pde.html http://www.panagen-bbs.ru/about_extract.html http://www.stemcellclinic.co ...
Глава 1. Код идеального партнера.     99,9 % людей на   нашей планете мечтают   о семье. Но не просто о семье, а хорошей, образцовой семье. Это   активно поддерживается социальными стереотипами. Например, с раннего детства   ...
Оригинал взят у ezhick в Московская эвакуация: узаконенный грабеж Мне никогда не нравилось, как в Москве осуществляется принудительная эвакуация, хотя за 14 лет стажа я попадал в нее два раза - один раз действительно за нарушение (лет восемь назад встал под знаком на Бережковско ...