Alexander
причем где 10 после "упаковки предаставления" стало <2
Alexander
@quetzal вообще зависит от паттерна работы
Alexander
в той программе где у меня много гигов памяти было, там gc было ~0.1c вроде
Alexander
но он был редко
Alexander
пару раз на несколько часов работы
Alexander
большая часть памяти никогда в gen1 не попадало
Quet
ну да, там конечно есть простор чтобы ручки у гц покрутить еще
Anatolii
а у кто-то вообще упирался когда-то в эти задержки ГЦ?
Danila Matveev
а задержки победили на больших хипах?
На jvm redhat пилит новый гц. Тестируют вплоть до 128гб. Оракл тоже недавно вынес в открытый доступ прототип Гц. Говорят о терабайтных хипах. Деталей еще нет и не понятно где есть терабайт ОЗУ.
Alexander
но чтобы "догнать" го нужно инкрементальный, на который забили
Anatolii
вот прям такой сидишь и понимаешь - ГЦ все испортил
Alexander
у меня
Alexander
вот в тех программах, но там было на уровне - хочется побыстрее
Alexander
а не АААА ВСЕ ПЛОХО
Alexander
и после тюнинга gc был хороший speedup нахаляву
Anatolii
просто инетресно - потому что интернетов начитаешся, кажется что у всех ГЦ торможит, а ты один дурак сидишь и не замечал
Quet
даже с 4тб
Alexander
ну марлоу с этим игрался
parket
ты можешь себе прям ща взять машину с терабайтом озу )
Фигасе, технологии. Я не знаю куда 12 гиг деть. А на рабочей машине, вообще 4.
Alexander
на больших машинках
parket
включи AAA игрушку любую
А, это. У меня для этого приставка.
parket
И сколько сейчас AAA жрёт игрушка?
Евгений
да почему 30 плохо? сейчас на относительно дохлых машинах памяти 128 и больше
Сначала так люди рассуждают, а потом сидишь и втыкаешь в зависшую идею при 16 гигах оперативки
Danila Matveev
но чтобы "догнать" го нужно инкрементальный, на который забили
Летом попадался забавный доклад о Гц го. Инженер из убера открыл что пропускная способность не очень и он быстро деградирует. Но кажется ему не поверили.
Alexander
это вроде не удивительно
Quet
но то что там гц оптимизирован на латенси вроде не секрет
Alexander
но при достаточном кол-ве оперативке и для микросервисов ты наверное не попадёшь на это
Alexander
там кстати уже 3х зонный gc запилили?
Alexander
или это счастливое будущее?
Евгений
Danila Matveev
есть ссылка?
https://www.youtube.com/watch?v=q1h2g84EX1M
Alexander
ну если будет много долгоживущих данных, или много отвечать, то можно деградировать все равно
Danila Matveev
Но когда у тебя мини сервис, коих большинство, то все ок. В этом плане ставка го была успешна.
Danila Matveev
При этом он вроде не тюнится.
Alexander
тюнить это сложно
Quet
При этом он вроде не тюнится.
не тюнится, но для сервисов важна latency обычно все равно
Alexander
depends on..
Cheese
https://image.slidesharecdn.com/functionconf2017presentation-moretext1-171120105929/95/joys-frustrations-of-putting-34000-lines-of-haskell-into-production-at-vacation-labs-30-638.jpg?cb=1511175855
A64m
вообще, даже если паузы не волнуют, то развесистые долгоживущие деревья это все равно медленно и печально, так что стоило бы поработать над контейнерами с "однокусочностью" или на компактах там
Quet
тоже мне открытие, он же однопоколенный, у таких пропускной способности выше плинтуса не бывает
уже ж обсуждали? там есть аллокация на стеке и это компенсирует в какой-то мере то что нет поколений
A64m
да это много где есть, и нигде еще не скомпенсировало ничего
Anatolii
а вот этот флажочек можно использовать прямо для всего проекта?
Anatolii
-funbox-strict-fields
Anatolii
я вот листаю слайды
Anatolii
https://johantibell.com/files/haskell-performance-patterns.html#(4)
Anatolii
и вот на этом написано что можете использовать per file
Anatolii
я вот подумал, почему его на весь проект не включить
Anatolii
или это приведет к каким-то негативным последствиям?
A64m
с тех пор как эта презентация написана GHC и так распаковывает строгие поля (не все, но те, где от этого толк есть, которые размером с указатель)
Quet
ну и понятное дело с чего взял что это ничего не компенсирует?
A64m
много где это где именно?
да почти во всех более-менее неигрушечных имплоементациях языков, которые много в куче аллоцируют, от явы до v8, в ФЯ типа хаскеля, в 90-е исследования были для эмелей, какие-то там пейпера Дойча и Бланшета, все это производительность повышает если очень повезет на десяток другой процентов. а поколения в разы потоковую производительность повышают. Вообше на стеке по всяким исследованиям процентов 20 можно размещать, при том что 99 короткоживущие объекты, вот и понятна эффективность всех этих эскейп анализов. Т.е как дополнительная прибавка нормально, но поколения никак не заменить
Quet
а можно ссылку на исследования про 20% на стеке?
Alexander
Гершом веселый
Alexander
теперь он хочет и афинные типы и линейные в C--
A64m
а можно ссылку на исследования про 20% на стеке?
вот, например, там на микробенчмарках-то хоть 99 получить можно, но на реалистических приложениях 10-30 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.463.1254&rep=rep1&type=pdf
A64m
бенчмарки на 44 странице начинаются
A64m
причем даже 99 это мало для того чтоб скомпенсировать поколения, потому что какой-нибудь ФП код может при сотне мегабайт долгоживущих по несколько гигов в секунду через нулевое пропускать
Andrei
что ldd говорит? или file?
> ldd (which stack) not a dynamic executable > file /home/develop7/.local/bin/stack /home/develop7/.local/bin/stack: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
Alexander
прикольно
Andrei
linux, конечно же
Andrei
до 1.5 stack upgrade свежую версию из исходников собирало :)
Andrei
Внушало, признаться.
Aliester
гента
Aliester
какая-то
Alexander
гента это хорошо
Andrei
генту разве автотестами гоняют в хвост и гриву?
Aliester
нет