Anonymous
те что в JVM 5-ой или 6-ой
Давно не смотрел в эту сторону. Что нового появилось, пока я писал на свифте с ARC?
Vladimir
@Barty4 одна из претензий к Go в том что gc сделан по самому простому варианту из возможных
Anonymous
@Barty4 одна из претензий к Go в том что gc сделан по самому простому варианту из возможных
Да, читал статью как-то, где жаловались, мол, обещали крутые алгоритмы, а там обычный GC на поколениях
Anonymous
Ты об этом?
Vladimir
Concurrency GC?
поищи инфу про работу их G1 GC
Anonymous
Я читал об этом у IBM
Vladimir
@Barty4 https://www.youtube.com/watch?v=q1h2g84EX1M
Anonymous
Vladimir
так лучше сразу
Anonymous
Да, ты прав, сейчас погляжу
Vladimir
хороший такой rant про GC в гошечке
Anonymous
Есть что-то похожее у тебя в «арсенале» про GC у Node.js?
Anonymous
неа, я js не умею и не знаю
Бережешь психику - это правильно
Vladimir
и nodejs для меня это та хрень которая с creative cloud прилетела и жрет 100% цпу если ты запускаешь апдейт фотошопа
Vladimir
почему-то
Anonymous
и nodejs для меня это та хрень которая с creative cloud прилетела и жрет 100% цпу если ты запускаешь апдейт фотошопа
Это все из-за того, когда люди не понимают, как работает node изнутри и говнякают.
Vladimir
ничего не знаю, в моем мире это какая-то непонятная фигня )
Vladimir
и пока это положение вещей я менять не хочу
Anonymous
и пока это положение вещей я менять не хочу
Ой, я будто бы тебе наркотик пытаюсь продать, а ты меня вежливо «сливаешь»
Anonymous
(Шутка)
Anonymous
так-то хочу свалить на Го
Vladimir
у Го кстати не generational gc :)
Anonymous
СовтСерв зовет
Anonymous
Отсобешусь, скажу потом, что спрашивали хоть
Anonymous
у Го кстати не generational gc :)
я не знаю, что это, увы
Vladimir
я не знаю, что это, увы
упрощенно - мы можем сканить всю память (как делает Го), а можем начать делить наши объекты по возрасту на поколения и сканировать с разной частотой разные поколения.
Anonymous
это я знаю
Anonymous
Ага
Anonymous
Есть же две гипотезы
Anonymous
о времени жизни
Vladimir
@Barty4 вот Го CMS обычный
Anonymous
Да-да-да
Anonymous
читал Философию Джавы и смотрел Шепелева доклаж
Vladimir
в жабе сейчас есть и CMS и G1 - G1 - generational
Vladimir
еще гошники sweep уносят в background
Vladimir
по сути
Daniel
если ты нагенерил 60-80ГБ мусора мелкими объектами то у тебя stop the world будет огромным
это если ты в куче его нагенерил. стековые должны освободиться сразу сами. контроля над этим у нас нет, но, вроде, оптимизатор ведет себя достаточно разумно на этом месте. про длинный stoptheworld - я помню же, что нам с каждой версией анонсируют сокращение пауз...
Vladimir
поэтому если ты нагенерировал много (вот прям очень много) мусора, то ты получишь веселости в виде "непйоми кто жрет 90% цпу"
Vladimir
если начнешь копаться - поймешь что на sweep
Vladimir
и ты это процессишь
Vladimir
оно нагенерит тебе мусора
Vladimir
и когда мусора много stop the world будет большой
Daniel
но единицы тысяч коннектов и десятки миллисекунд таймаута такого эффекта вызывать не должны, вообще-то
Vladimir
@onokonem просто нужно очень много мусора генерировать
Daniel
я, честно скажу, на своих тестах этого не видел. то есть - вообще не видел влияния gc на происходящее.
Daniel
да где же его взять-то, много-то? :)
Vladimir
я, честно скажу, на своих тестах этого не видел. то есть - вообще не видел влияния gc на происходящее.
я в некоторых условиях вижу, например если начинаю агрессивнее кешировать результаты у меня gc pause с 3мс взлетает до 500-600 легко
Daniel
результаты чего?
Vladimir
результаты чего?
ну я все про свое, про графит )
Daniel
и почему, раз так, ты не используешь пул объектов?
Vladimir
и почему, раз так, ты не используешь пул объектов?
м... ну как бы так сказать, потому что он бесполезен в моем случаи
Daniel
да лана
Vladimir
@onokonem я тебе видео выше тоже рекомендую посмотреть. Пул работает вероятно не так как ты думаешь он работает
Vladimir
например sync.Pool периодически очищается
Daniel
честно сказать - я всегда свой собственный писал
Vladimir
честно сказать - я всегда свой собственный писал
у своего собственного тоже есть особенности - его всегда будет сканить GC :)
Daniel
потому как если мне подходит генерализованный алгоритм - мне подходит gc
Vladimir
а sync.Pool нет
Daniel
и их не может быть много
Vladimir
вопрос в количестве объектов
да, в случаи моем это много маленьких
Daniel
ну просто неоткуда взяться
Daniel
в твоем да, но твой случай - классика "нам не подходят общие алгоритмы"
Daniel
в rtb этого всего нет, я же помню
Daniel
ну вот rtb, насколько я помню, как раз общий.
Daniel
там, действительно, можно получить ситуацию с бесконтрольным ростом хипа
Vladimir
ну вот rtb, насколько я помню, как раз общий.
А напомни расшифровку ртб в данном контексте
Daniel
real time bidding. реклама. я два году этому дерьму посвятил
Vladimir
А, ну я про ртб сейчас не говорю
Daniel
а разговор начался с него :)
Vladimir
Хотя если касаться его, то там вообще Гц вреден в местах где критичен лейтенси
Daniel
вреден
Vladimir
И если вы пишите ртб на го или жабе, то что то явно пошло не так
Daniel
но я делал же dsp, который 10К запросов в секунду принимал, и gc на нем себя никак не проявлял