Size: a a a

2019 December 27

Z

Zver in Go-go!
Marat Mkhitaryan
я попробовал заспавнить миллион горутин которые просто for {} делали, 7 гигабайт оперативной памяти съело и 100% CPU
Ну for {} загружает поток на 100%, соответственно, если бы мы запустили всего N горутин на количество ядер, то вы бы уже загрузили процессор на 100%.
источник

Z

Zver in Go-go!
@mr_tron
Эм. Ну типа если тебе ио, то миллионы, а если вычисления паралелить, то на миилионе получишь просадку производительности
Там просадки не будет, просто остальные колом встанут горутины.
источник

DP

Daniel Podolsky in Go-go!
Если вам не хватает проца - вам не хватает проца. Те крохи, которые можно сэкономить на аккуратном запуске горутин, вас не спасут
источник

AK

Andrey Kolkov in Go-go!
Там еще комментарии полезные)
источник

DZ

Dmitry Zherebko in Go-go!
источник

DZ

Dmitry Zherebko in Go-go!
вот тут были перф тесты с воркер пулом и без
источник

DP

Daniel Podolsky in Go-go!
И что?
источник

DM

Dmitry M in Go-go!
Marat Mkhitaryan
Есть ли где-то сравнение в каких кейсов лучше разово спавнить а когда воркерпул делать
пул горутин позволяет уменьшить расходы cpu, mem из-за stack splitting
источник

MT

Mikhail Tsyplakov in Go-go!
Добрый день.

https://play.golang.org/p/PzR0qUv5WqS
Если на 51 строке я закрыл канал, разве он он должен тогда попадать в условие на 47 строке?
источник

ВС

Владимир Столяров in Go-go!
так тут попытка записать значение по неверному индексу в канал
источник

DP

Daniel Podolsky in Go-go!
Dmitry M
пул горутин позволяет уменьшить расходы cpu, mem из-за stack splitting
пул потоков, напомню, в go уже есть.
источник

MT

Mikhail Tsyplakov in Go-go!
Владимир Столяров
так тут попытка записать значение по неверному индексу в канал
Кажется я понял )  Спасибо
источник

m

many-faced in Go-go!
ребят подскажите такой вопрос. У меня есть функция, я хочу расширить её сигнатуру чтобы она соответствовала такой сигнатуре, которая требуется для передачи в другую функцию. Но, дополнительный аргумент не будет использоваться внутри самой функции и он нужен только ради самой сигнатуры. Насколько оптимально так делать - добавить аргумент и замьютить его в сигнатуре? Передаётся, например в функцию этот аргумент данные неким размером, а он мьютится, гошка это оптимизирует как-то?
источник

DP

Daniel Podolsky in Go-go!
а какого рожа оптимизации вам бы хотелось?
источник

М

Мерль🛠 in Go-go!
many-faced
ребят подскажите такой вопрос. У меня есть функция, я хочу расширить её сигнатуру чтобы она соответствовала такой сигнатуре, которая требуется для передачи в другую функцию. Но, дополнительный аргумент не будет использоваться внутри самой функции и он нужен только ради самой сигнатуры. Насколько оптимально так делать - добавить аргумент и замьютить его в сигнатуре? Передаётся, например в функцию этот аргумент данные неким размером, а он мьютится, гошка это оптимизирует как-то?
абсолютно нормально так делать
источник

m

many-faced in Go-go!
Daniel Podolsky
а какого рожа оптимизации вам бы хотелось?
Я не знаю, как go поступает в этот момент - копирует данные в функцию, а потом gc чистит, видя, что их не используют, или ничего такого не происходит
источник

DP

Daniel Podolsky in Go-go!
gc не трогает параметры функции - они всегда на стеке
источник

m

many-faced in Go-go!
Daniel Podolsky
gc не трогает параметры функции - они всегда на стеке
Происходит ли размещение на стеке мьютированных аргументов?
источник

DP

Daniel Podolsky in Go-go!
не знаю. а это важно?
источник

AS

Andrei 🦉 Sergeev in Go-go!
many-faced
Происходит ли размещение на стеке мьютированных аргументов?
что такое мьютированные аргументы?
источник