Мерль
[last news] Go 1.8.1 is released
Slava
до второго сервис пака не ставим
Kirill
[last news] Go 1.8.1 is released
как раз пулюсь. упёрся в рантайм, скорости не хватает, я ебал, не знаю что делать, сколько времени упираюсь в язык
Slava
железо дешёвое
Kirill
нет
Slava
пиши распределённые штуки
Slava
твоё время дешевле? =)
Kirill
железо дешёвое
SC815TQ-600CB / X9DRD-7LN4F / 2xE5-2620V2 @ 2.6GHz w/ HT enabled / 32GB DDR3 @ 1600 / 2x480GB SSD (MZ-7KM480) RAID1 [sysctl](https://gist.github.com/kirillDanshin/2d86335d3e0db168c39b5df46fa2d671) Go: 1.8 OS: CentOS 7 / 3.10.0-514.10.2.el7.x86_64
Kirill
твоё время дешевле? =)
похоже, всё равно придется пулить апстрим и фиксить эту хрень в гудланге.
Kirill
если, конечно, 1.8.1 волшебным образом не зафиксит проблему.
Kirill
Мерль
[last news] Go for big data
Sergey
Товарищи, у меня очередной нубский вопрос про параллельность
Sergey
Вот я могу горутин запустить хоть сто тыщ, но одновременно всё равно работают не все
Sergey
Это же так? Мы упираемся в железо или в ос/железо
Sergey
Есть ли какие-нибудь способы по определению оптимального кол-ва горутин?
Kirill
может быть го не лучший вариант для вашей задачи?
Переписывать слишком много. Проще запатчить язык.
Anonymous
ну можно и так
Anonymous
попробуйте GC порезать
Kirill
Есть ли какие-нибудь способы по определению оптимального кол-ва горутин?
По умолчанию оптимальное количество одновременно выполняющихся горутин. Остальное из расчета 4 байта + вес данных.
Slava
Вот я могу горутин запустить хоть сто тыщ, но одновременно всё равно работают не все
процессор может выполнять одну задачу(не учитыая ht), в это и упираешься
Kirill
попробуйте GC порезать
Уже. Не влияет почти.
Slava
там уже два по моему, зависит от ОС
Kirill
4 килобайта? =)
Да, на нервах уже иногда оговариваюсь.
Kirill
там уже два по моему, зависит от ОС
Я бы считал по максимуму.
Kirill
sync.*Mutex пользуешь?
Sergey
Нет, я через 10 мин скину как я работаю с горутинами
Kirill
тогда, может быть, их у тебя и правда 4.
Kirill
а если где-то у тебя самого или у тебя в зависимостях они есть — считай, что у тебя, на время работы того блока кода, ядро одно.
Kirill
это же, вроде, в 1.8 не фиксили, да, коллеги?
Slava
А как же мои 4 ядра?
Для операционной системы твои ядра - процессоры или прям ядра? :)
Sergey
Так что хз, как мои ядра для убунты выглядят )
Slava
Ну вот читай изначальное сообщение
Slava
Один процессор - один тред
Slava
Рантайм го сам переключает горутины
Vladimir
/proc/cpuinfo выдает процессоры же вроде
Там есть как CPU number так и core number. Для ос ведь есть разница, правда для софта нету
Anonymous
Так что хз, как мои ядра для убунты выглядят )
Какой глубокий смысл в этой фразе.
Max
Товарищи, по умолчанию горутины выполняются только на одном ядре процессора? То есть выглядят как green threads или я ошибаюсь? Если ошибаюсь, подкиньте где почитать
Max
мм, кажется как раз выше об этом писали :D
Oleg
По умолчанию горутины выполняются на всех доступных ядрах, и они всегда green threads, просто разбиты по системным тредам :)
Sergey
Что такое green threads
Sergey
? )
Yehor
зелёные потоки
Yehor
кеп
🏳️ Phil
Грин треды это ваще что?
Oleg
Sergey
Я прочитал, что это потоки, которыми управляет виртуальная машина. У Го есть встроенная ВМ?
Oleg
Не совсем ВМ, но есть Go Scheduler
Dmitry
Я прочитал, что это потоки, которыми управляет виртуальная машина. У Го есть встроенная ВМ?
Под ВМ здесь имеется в виду рантайм языка. Основное отличие гринтредов в том что ими управляют в userspace, без задействования привычных для обычных, системных тредов, системных вызовов. Т.е. можно сказать что гринтреды это альтернативная системным тредам реализация, которая стремиться достичь той же цели, но иными способами
Slach
народ strings.Join() для []string гарантирует порядок обхода?
Yehor
Чувак первое апреля прошло
Dmitriy
сори не тот чат)
Dmitriy
но не отменяет совет) посмотреть реализацию
Yehor
Это да
Alex
Во время ожидания time.Sleep runtime может приостановить текущую горутину и передать управление другой (чего простаивать)?
Anonymous
Давно бы проверили :) Запускаем ровно гоурутин под количество ядер на процессе по GOMAXPROCS и одну лишнюю В первых гоурутинах равных ядрам запускаем долгий слип, а лишнюю запускаем через короткий слип и какой-нибудь fmt для проверки Вуаля, проверили, что любой стоппер рантайм смотрит и передает управление
Slava
стоппер? =)
Slava
что это за новое слово в программировании
Mikalai
Но принцип такой, да
Anonymous
А великая русская душа - подождать комментарий
Anonymous
И ехидно простебать его :)
Anonymous
Ибо 1. Я думаю, что я это уже знаю и тысячу раз повторять не буду какому-то человеку 2. Я не знаю, но простебать можно, почему бы и нет
Slava
я не стебу, хочется понять что это такое стоппер
Anonymous
https://ru.wikipedia.org/wiki/Стоппер_(значения)
Anonymous
Суть из разных значений несет один смысл
Slava
может быть в каком-то конкретном кругу общения оно несёт смысл, но обычно применяют термины из профессиональной литературы, которые уже устоялись
Anonymous
Бывает, что скажу.