Yura
А зачем дерево? Heap!
Yura
Угадай, как таймеры в Go работают? Используют heap.
Yura
Но это нужно, если время удаления не строго "текущее время + константная дельта", т.е. если может быть произвольным. В противном случае, лучше просто список.
Nikolay
Угадай, как таймеры в Go работают? Используют heap.
зачем угадывать? я прекрасно читаю Go-код, вся реализация как они работают есть на гитхабе в рантайме Go. при чем тут куча в оперативе я так и не понял, может имелось ввиду что структуры таймера в куче хранятся? ну это и так поняно, что не на стеке.
Nikolay
А зачем дерево? Heap!
дерево, чтобы не создавать миллион таймеров. почему? - смотри реализацию таймеров в Go, планировщиков в Go и тд. Также дерево, чтобы конкурентно вставлять и удалять из дерева данные, также оно отсортировано.
Yura
зачем угадывать? я прекрасно читаю Go-код, вся реализация как они работают есть на гитхабе в рантайме Go. при чем тут куча в оперативе я так и не понял, может имелось ввиду что структуры таймера в куче хранятся? ну это и так поняно, что не на стеке.
Видимо, читаешь как в поговорке: "смотрю в книгу, вижу фигу". Вот тебе для расширения кругозора https://en.m.wikipedia.org/wiki/Heap_(data_structure) А вот что использовано для таймеров (смотри implementation): https://en.m.wikipedia.org/wiki/Binary_heap
Yura
Хинт: у меня маленький коммитик в гошные таймеры. Не то, чем стоит гордиться, просто к тому, что я в теме.
Nikolay
Видимо, читаешь как в поговорке: "смотрю в книгу, вижу фигу". Вот тебе для расширения кругозора https://en.m.wikipedia.org/wiki/Heap_(data_structure) А вот что использовано для таймеров (смотри implementation): https://en.m.wikipedia.org/wiki/Binary_heap
:)))) как прикольно у тебя все смешалось в одно и люди и кони) разберись со своими теоретическими знаниями для начала, а то все путается невероятно. куча в памяти пофиг как организована с точки зрения этой задачи. реализация таймера, когда он выстреливает, что за структуры использует есть в рантайме Go - можно взять и посмотреть. как эти структуры кладутся в памяти побарабану в принципе, хранение памяти в таком виде нужно для GC и только, чтобы иметь граф связанных обьектов и по ним бегать помечая их цветами, как делает Go GC.
Yura
Я тебе дал ссылки. Если ты путаешь heap - структуру данных и heap - организацию памяти, это много говорит о твоем знании "теории". Почитай по ссылкам. BTW экскурс в историю: динамическая память стала называться heap, т.к. в перых реализациях широко использовалась структура данных heap. В общем, иди читай википедию.
Yura
Забавно, что ты поигнорировал мое сообщение о моем коммите в реализацию гошных таймеров. Т.е. с высоты твоего невежества, ты даже не хочешь читать, что тебе пишет оппонент.
Nikolay
Угадай, как таймеры в Go работают? Используют heap.
ну давай ссылочки тогда не на википею, коммитер, а на сурсы Go - где там используется heap как структура данных и каким макаром это поможет задаче
Yura
https://github.com/golang/go/blob/master/src/runtime/time.go // Add a timer to the heap // Delete timer t from the heap. // Heap maintenance algorithms.
Nikolay
молодец, нашел
Yura
А теперь покажи, где там сортированное дерево. А потом пойди и почитай таки ссылки на википедию: для чего придумана структура данных HEAP? Почему binary heap так часто для таймеров используют? Расширяй кругозор.
Yura
Я с телефона, гитхаб номера строк в телефоне не выводит. Что в строке 91?
Yura
Чтобы не создавать миллион таймеров? Для этого и куча сойдёт, а она в реализации проще дерева. А написать конкурентное сбалансированное дерево - еще то упражнение. Если ты такие пишешь, снимаю перед тобою шляпу. А лок на слайс - это правда. Потому я уже раза два писал свои таймеры поверх встроенных. Только проблема решается просто: заводишь много слайсов с локом на каждый, и вставляешь в разные. Собственно valyala так и предлагает починить таймеры в 1.9, и 99% вероятностью его патч будет принят.
Yura
Т.е. сейчас, зная, что его патч будет принят, я сто раз подумаю, прежде чем свои таймеры писать. А учитывая, что в оригинале Станислав предлагал по горутине на элемент, очевидно у него десятки миллионов элементов не предвидятся.
Yura
Да, ты не ответил: ты писал сбалансированное дерево, поддерживающее конкурентную вставку/удаление? Я бы хотел поучиться. Да и статья на хабре, думаю, много бы набрала плюсов.
Yura
Прости, вероятно для своей задачи ты писал.
Yura
Твоя реализация - коммерческая тайна? Очень хочется посмотреть. (Я искренне, без издевки).
Yura
Просто, я более-меннее в однопоточных алгоритмах подкован, но когда до параллельности доходит, ничего лучше чем "пошардить и по локу на шард" выдать не могу.
Yura
К чести признать, чаще всего шардирование решает задачу.
Nikolay
я могу дать пейпер где я немного идей спер
Nikolay
я как раз нашел в закладках
Nikolay
http://www.cs.technion.ac.il/~erez/Papers/lfbtree-full.pdf
Yura
Ок, спасибо :-)
Constantine️
не в тот чат ты пришел, мне кажется
🏳️ Phil
ты чатик перепутал
Constantine️
не
Constantine️
это не к нам
Constantine️
беда какая
Constantine️
как ты с этим живешь?
Constantine️
чувак
Constantine️
ну каммон
Constantine️
свали отсюда
Constantine️
ага
ainu
robots.txt. параметр crawl-delay
ainu
Более правильный способ отдавать заголовки last change или етокен
ainu
Тогда робот узнает дату если не менялась не запрашивает, но это код достаточно сложный, кешировать и все такое
ainu
Вообще, миллион хитов с Яндекс робота это нормально. С этим надо учиться жить.
ainu
Небось поддомены сделали
ainu
У нас спасает эластик серч, который, нагрузку фильтров на себя берет.
ainu
Страница не найдена.
Nikolay
похоже)
ainu
Миллион в сутки с Яндекса это нормально. Спам это когда повторяется useragent или посетители из камбоджи.
ainu
А если ты про amigo.uz, то похоже
Sergey
Забаньте этого товарища, а то потом придут другие
Oleg
Надо таких досить
ainu
Нет
ainu
Если план это обмен ссылками то нет
ainu
Нет конечно
ainu
Наоборот
ainu
Минутку
Oleg
@amigo_uz ведете себя без уважения. Так бизнес не построить, Чувак
Constantine️
в бан его и всё )
Constantine️
пускай дальше сеошников развлекает
Sergey
Мерль, или кто ещё из модеров, забаньте сеошника плиз
Мерль
вжух
Oleg
вжух
👍🏻
Мерль
Ничего не имею против Узбекистана, но всё равно огонь
ainu
Действительно клаудфлер
ainu
ab -n 10000 -c 600 http://amigo.uz/ Выдержал
ainu
Правда, некоторые хиты 26 секунд отдавал
Mikalai
ab -n 10000 -c 600 http://amigo.uz/ Выдержал
Запустить что-ли с парочки серверов 😁
ainu
Не поможет
ainu
Надо по уникальным урлам бить или через post чтобы клаудфлер не ккшировал
ainu
Хрен с ним
Oleg
http://amigo.uz/phpmyadmin
ainu
Я думал у чувака проблема, Яндекс боты делают миллион запросов. Сталкивался, обидно бывает. А он оказывается говорил про "миллион уников с seo"
ainu
А если у тебя миллион уников с сео ты либо с заработанного бабла нанимаешь команду которая все переписывает начисто, либо ты дибил и не умеешь делать деньги. Тут скорее всего просто врет.
Мерль
[last news] SWIFT takes over Golang in latest TIOBE ranking
igor
[last news] SWIFT takes over Golang in latest TIOBE ranking
у Go прирост самый большой в таблице :) почти на 2% за год
ainu
Что там Паскаль делает?
Roman
что с растом? будет ли успешен?