Content-pro

Рейтинг
101
Регистрация
12.08.2009
danforth:
В случае моего велосипеда, переписывать ничего не придется, так как я не представляю себе человека, загрузившего более 10 млн. урлов на проверку ТИЦ. Обработка миллиона записей займет 300 мб в оперативной памяти при самом печальном раскладе (хранить в памяти и сам URL). 10 млн. записей - 2 ГБ, а сортировка по нему займет аж целых 1.2 секунды). Я не знаю кому в здравом уме придет идея загрузить 10 млн. урлов на проверку. При желании можно сделать дисковую сортировку, а в памяти хранить только ТИЦ и номер байта с которого начинается строка. В последующем, мы просто переходим к n-ому байту в файле, и пишем его в файл отсортированный. С таким подходом мы выкинем строки из памяти, что снизит раз так в 10-15 количество потребляемой памяти, но увеличит время работы сортировки..

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

danforth:
MapReduce это не тот инструмент, который применим в контексте данной задачи, т.к. для осуществления данного алгоритма, нужен ещё один ПК. Данные разбиваются на чанки и отправляются в кластер (Reduce), машины в кластере обрабатывают данные (Map).

Там вроде основная фишка это параллельные вычисления, я особо не работал с большими данными, но немного работал с R, там векторизация работает довольно шустро, типа если знаем длину вектора, рубим, обрабатываем параллельно, потом склеиваем назад в один вектор.

danforth:
При чем тут MapReduce? MapReduce это вообще не про это. Это про обработку в кластерах. В данном случае, файл можно читать построчно, в приложении держать слайс данных (ссылка + ТИЦ), в конце отсортировать и записать в файл. Но сама идейка скучная.

Можете конечно построчно работать, но уверены что у вас оперативки хватит к примеру для сортировки? Вообще на миллионах лучше специальные инструменты использовать, ибо а а вдруг данные в два раза увеличатся с специальными инструментами у вас просто время обработки увеличиться, в случае вашего велосипеда, вполне возможно придется все переписывать)

А вообще после парсинга, можно в базу загнать mysql к примеру и там отсортировать и извлечь.

Had:
А каким образом эксель будет понимать у какой ссылки какой тиц?

Ну в любом случае написание парсера не особо подходит под задачу развития навыков кодинга, это больше прикладное.

Ну а вообще если уж отбиваться от вашего уточнения) То можно xpath вроде в exel юзать Если погуглить можно даже такое найти

http://seotoolsforexcel.com/httpsettings/

Там вроде даже proxy поддерживается)

Had:
И ссылок таких в одном файле много - 50 тысяч, 200 тысяч, миллион, 10 миллионов и т. п. Так вот, нужно чтобы данная программа брала этот файл, обрабатывала так, чтобы ссылки сверху вниз, порядок был по ТИЦ-у, от самого жирного ТИЦ-а к менее жирному и сохраняла результат также в тхт файле.

Ну вообщем если без миллионов то эксель справиться на раз. Для миллионов нужна хотя бы умение работать с map-reduce а это явно не для человека который только учиться скрипты писать.

TF-Studio:
мнет кажется, AMP совсем не зашло. и вряд ли зайдет.
лишняя трата времени.
проще оптимизировать именно мобильную версию сайта

сугубо имхо

Заходит еще как, в гугле все чаще и чаще amp встречается. Но amp жутко кастрированный, для какой нить динамики приходится извращаться жутко. Чисто статейку и соц.кнопка в принципе подходит идеально, для чего то большего засада. И самое большое что напрягает это когда юзер делится ссылкой через соц.кнопки урл ведет на amp.

document.write - не есть гуд.

лучше так:

<div id="myads"></div>

document.querySelector('#myads').innerHTML('ваша фраза');

Сам array можете из бэкэнда пульнуть прямо в шаблон типа

<script id="myJSON" type="application/json">{"values": ['one,''two']}</script>

Ниже можно разместить

<script src="/path/to/script.js"></script>

сам script типа такого

//Получаем данные в json и парсим

var dataAds = document.getElementById('myJSON').innerHTML;

dataAds = JSON.parse(dataAds);

//генерируем рандомный индекс от 0 до длинны массива

var randomIndex = Math.floor(Math.random() * dataAds.values.length) + 0;

//добавляем значения из массива с помощью рандомного индекса внутрь дива

document.querySelector('#myads').innerHTML(dataAds.values[randomIndex]);

1. Если просто заходите на страницу с мобилку не через выдачу гугла будете попадать на обычную страницу сайта. amp доступна по определенному урлу, гугл будет показывать страницы по урлу amp из своего кеша. Можно и без выдачи заходить на amp страницу, но только если по урлу для которого сделаете отдельный вариант страницы.

2. Это чисто на ваше усмотрение. Теги не вырежутся, вам необходимо будет создавать отдельные шаблоны для amp версии страниц, там множество различных ограничений. Если сделаете не валидно, то гугл вероятней всего откажется воспринимать ее как amp.

Без демонстрации сайта с включенной рекламой тут навряд ли чем помочь можно.

До конца недели предлагаю всем обратившемся значимые скидки на заказы(css,html,js).

Блин реально какой трандец, никто из выступающих выступать не умеют, это фишка такая что ли)

Всего: 794