00:04:45 Pavel S: привет + 00:04:51 Дмитрий: + 00:04:51 Konstantin: +++ 00:04:53 dmitriy: Привет, слышно но тормозит 00:04:56 Pavel S: тормозит 00:05:07 Михаил Парфёнов: вебка слайдшоу 00:05:12 Konstantin: норм, жить можно 00:08:04 Konstantin: пустая строка 00:08:06 Дмитрий: Payload пустая строка по идее должна 00:08:10 dmitriy: Не запишется 00:17:21 Михаил Парфёнов: То есть после t := &T{} перед передачей в method() go сделал копию структуры под t, взял от него указатель и передал в аргумент? 00:17:27 Konstantin: но не для слайса)) 00:17:30 Чумаков Илья: Не лучше ли всегда возвращать новую структуру и присваивать её в t, а не менять входную по указателю? 00:17:57 Чумаков Илья: Чтоб не было грязной функции 00:18:31 Михаил Парфёнов: я про случай func (t *T) method() 00:19:48 Михаил Парфёнов: понятно 00:22:50 Илиас Эззахид: То есть изменения останется в scope fn ? 00:37:23 dmitriy: А какое значение обычно указывают в GOMAXPROCS? Или оставляют по умолчанию? 00:42:44 Konstantin: мало думаю 00:42:47 Чумаков Илья: чуть меньше 1000 00:42:47 Konstantin: до 5000 00:42:47 David R: < 10_000 00:42:48 Дмитрий: непредсказуемо 00:42:50 Михаил Парфёнов: меньше, 9000 00:42:54 av: 9500 00:42:57 Илиас Эззахид: 9xxx 00:43:52 David R: да 00:43:55 Konstantin: хотелось бы) 00:45:00 dmitriy: А если поставить ограничение на количество? 00:45:59 Чумаков Илья: интересно как под капотом работает -race, всегда ли он находит все гонки данных или есть ложно-отрицательные выводы 00:46:49 Илиас Эззахид: Как по другому дебажить гонки ? 00:48:22 Konstantin: есть ли какое-то количесвто горутин, которое снизит эффективность программы? или сильно от контекста зависит? тот же пример с миллионом горутин в счетчике - по идее в одном потоке сделает эффективнее 00:48:42 alex: счетчик по ссылке передается в горутинах ? 00:52:20 Илиас Эззахид: В highload всегда используется fasthttp или worker pool ? 00:52:56 Konstantin: ну есть смысл с тем же io? 00:57:16 David R: не буде 00:57:16 Илиас Эззахид: да 00:57:23 Konstantin: не будет 00:57:24 dmitriy: Думаю да 00:57:34 David R: 10_000 выведет 00:57:37 Чумаков Илья: нет, ассинхронность останется, но одновременно будет работать лишь 1 горутина на процессоре 00:58:52 Михаил Парфёнов: проверил с -race , 10000 получилось, но датарейс задетектился 01:00:17 Konstantin: если в кубере ставится ограничение такое на 1 проц, то тогда кажется теряется все преимущесто от планировщика горутин 01:06:20 Дмитрий: Если gomaxprocs = 1, http-сервер будет входящие запросы обрабатывать параллельно или только один запрос за один раз? http-сервер же тоже на горутинах под капотом 01:06:43 Илиас Эззахид: Всегда писать defer wg.Done прежде defer wg.Unlock ? 01:12:51 Илиас Эззахид: Что если у нас queue jobs например parser или жития картинок cтоит использовать Если gomaxprocs = 1 ? 01:13:10 Дмитрий: Replying to "Если gomaxprocs = 1,..." Понял, спасибо 01:17:02 David R: ~1c 01:17:05 alex: 1 сек 01:17:05 Чумаков Илья: чуууть больше 1 секунды 01:17:08 Михаил Парфёнов: секунда 01:17:55 alex: внутри 1 горутины можно остановить выполнение других горутин ? 01:18:49 Konstantin: 3 сек + оверхэд 01:18:50 David R: 1c 01:18:51 dmitriy: 3 01:18:57 Чумаков Илья: 1 секунда 01:20:55 Konstantin: аа блин точно) 01:22:53 Михаил Парфёнов: если расставить локи, то будет 3 секунды 01:23:48 Konstantin: ну или цикл который будет выполняться одну секнуду 01:28:03 Чумаков Илья: Как по мне, удобно думать, что корутина - это функция, которая может быть прервана неявно в любой момент исполнения) 01:32:47 Konstantin: операции с nil каналами это паника? 01:34:09 dmitriy: То есть если мы читаем из канала, то место в канале освобождается и мы можем что-то туда еще положить? 01:34:18 Чумаков Илья: бесконечную/динамическую ёмкость каналу задать нельзя? 01:42:21 Чумаков Илья: т.е. после закрытия канала из него можно читать, но нельзя записывать в него? 01:42:53 dmitriy: Объясните пожалуйста еще раз, для чего нужны каналы? 01:43:08 Konstantin: по идее только сендер должен закрывать канал? 01:43:31 Konstantin: а ресивер не должен его закрывать - только читать 01:45:00 dmitriy: Все, разобрался, спасибо 01:47:55 Илиас Эззахид: Канал может сам закрываться ? 01:53:40 Konstantin: фатал можно рекаверить? 01:55:55 Илиас Эззахид: По ошибкам нужно отличать buffered и unbuffered Chan ? 01:56:27 Konstantin: есть каналы только на чтение? 01:57:15 Konstantin: аа это типа защита от дурака? 01:57:28 dmitriy: В целом понятно, надо будет на практике потестить все это дело 01:58:41 Konstantin: каналы это тонкие указатели? 01:58:55 David R: на сколько помню, panic можно перехватить, а fatal error вызывает сразу os.Exit() под капотом. но могу ошибаться. к вопросу об отличиях м/у ними 02:03:50 David R: кстати, fps поднялся) 02:04:49 Дмитрий: Replying to "кстати, fps поднялся..." Как и вчера через 10-15 минут после старта, какая-то закономерность) 02:05:25 Михаил Парфёнов: Reacted to "Как и вчера через 10..." with 👍 02:05:26 Pavel S: Reacted to "кстати, fps поднялся..." with 👍 02:05:31 Pavel S: Reacted to "Как и вчера через 10..." with 👍 02:14:52 Михаил Парфёнов: скорее это луп 02:19:26 dmitriy: Надо было все так максимально сложно сделать под капотом, чтобы никто ничего на собесах не спрашивал) 02:20:07 David R: Replying to "Надо было все так ма..." Пока Балун или Тузов не снимут ролик) 02:20:18 dmitriy: Reacted to "Пока Балун или Тузов..." with 😁 02:20:21 Илиас Эззахид: Reacted to "Пока Балун или Тузов..." with 😂 02:20:27 Konstantin: Reacted to "Пока Балун или Тузов..." with 😁 02:22:30 Илиас Эззахид: Чувству этот созвон пересмотрю 02:22:59 Konstantin: Replying to "Чувству этот созвон ..." 2 с половиной часа) 02:23:46 dmitriy: Спасибо 02:23:48 Konstantin: до свидания 02:23:50 David R: боброй ночи 02:23:50 Pavel S: спасибо, пока