Сергей
@tac
Программист
Information
- Rating
- Does not participate
- Registered
- Activity
Specialization
Game Developer, Software Architect
Lead
C#
OOP
ASP.Net
MSSQL
Game Development
C++
Programming microcontrollers
Software development
WPF
Unity3d
Если асинхронно посылать запросы и ждать их завершения (синхронизировать для записи в файл) сразу для 256 ip адресов, то на это уходит 23088 ms против 26838 ms при полностью синхронном ожидании. Действительно, таймаут можно увеличить в этом случае до 500ms и это влиять существенно не будет: 23146ms против 122059 ms.
Ну реальная производительность увеличивается если число асинхронных запросов увеличить скажем 256*4, уже дает 31830 ms.
Но тут имеется и верхняя граница. Ни чего делить по кол-ву ядер не нужно, C# при асинхронных вызовах сам все успешно делит на потоки, а система под разные потоки выделяет необходимое число загрузки ядер. Так скажем, у меня 2 процессора по 4 ядра. Если я выполняю все синхронно задействуется примерно 12% общего времени CPU. Теперь я сделал тест на асинхронный скан 256*N ip адресов, при этом процессорное время бегало от 20% до 60%, ну в среднем 50%, скажем так было задействовано 4 ядра.
Результат:
256*4 дает 31830 ms
256*8 дает 45242 ms
256*16 дает 79411 ms
256*32 дает 168464 ms
256*64 недождался
т.е. с ростом асинхронных запросов без синхронизации производительность вначале растет, а потом падает. Выше 256*16 уже идет замедление. Посчитаем выигрыш при 256*16 = 80 сек. * 16 = есть вероятность что получу за 21 минуту вместо 109 упомянутых в статье. Но там однопроцессорное время, приведем 109/4 — 21 = 33 мин. выигрыш, т.е. где-то 160% чистый выигрыш
Ну, и конечно, пока это лишь идея о «поисковиках нового типа» — никто с этим считаться не будет (капитан америка), но если бы тот же гугл по умолчанию не индексировал бы такие «крупные сайты», то думаю от их «крупности» ничего бы не осталось бы. Ну, а так пока что «мифический поисковик» будет работать с сайтами «менее крупными», но с публичной информацией.Их я думаю тоже достаточно :). А хитрицы пусть покурят в сторонке, честно говоря я не понимаю тех кто желает скрыть IP сайта, кроме явно жуликов и закрытой информации. А приватный сектор и жуликов исключить из поисковиков — это лишь на благо. И речь же как раз о том, что доверия к индексированию нет, и то что это индексирование мало что отражает.
На первом этапе, отрезать русскоязычные сайты, находящихся не на российских IP — это не проблема вообще. Найти и и выделить их тоже не проблема — определить по языку используемому на сайте. Не проблема отрезать — потому что, нужно понимать главное — поисковику должны докладывать где и какие страны. В идеале, любой сайт должен сообщать свою страну вплане физического расположения — но это, как я и написал легко выяснить, а так же свой язык — скажем в заголовке HTTP, а сайты же не подчиняющиеся этой хорошой манеры, надо просто исключить из поиска. Далее все зависит от желаний пользователя — хотят они понимать куда они заходят и какой контент ищут — такой поисковик будет пользоваться успехом, нет — воспользуются другим.
Но такого рода поисковика я пока не вижу, и в этом проблема. «ищу я к примеру «mvc framework»» — надо вам и указать Вы хотите объяыснение получить на русском, английсом или китайском? Используя вышеописанное вам и найдут соответствующие из проверенного контента без мусора. (добавить мусор, не проблема, сложнее его убрать)
* сетей провайдеров домашнего интернета — там вполне могут быть веб-сайты
* 1 ip != 1 сайт — а я и не говорил такого, но проверить каждый IP — чтобы понять где есть сайты, и наоборот как сайты используют IP достаточно важно. Про актуальность неясно — вопрос лишь в частоте проверки.
Т.е. 35к = это что-то около 700 EUR? Ну скажем я сейчас под Ригой плачу 100 EUR в своей квартире, если взять в кредит то было бы 300 EUR, если снимать в Риге ну макс 400… еда и того меньше 50-80 EUR на неделю на семью, если ходить в кафе то 10 -15 EUR на троих плотно поесть и выпить пива
Так а какого фига тогда в Москве делать :)
" трёхдневное знакомство с TS как глубокое понимание предмета"
Однако, мне этого было достаточно, чтобы перевести мое проектик. Все остальное придумыли Вы сами, я же поделился теми трудностями с которыми столкнулся. Ну, и в скобках заметим, Вы читаете мою статью — с удовольствиям почитал бы статьи здешних умников, однако таких статей нет.
«судя по ошибкам в статье, вы также мало знакомы с C#»
смешно :) Может стоит вначале назвать в чем ошибка, а потом уже что-то утверждать?
P.S.
Приезжайте к нам, может и я устрою вас на работу :)