Miroslav
RWMutex не решит?
Может и решит, кстати) Так как можно одновременно читать выглядит не так страшно.
P.S. А это настоящие мьютексы? Не барьеры памяти?
Alexander
попробуй нечто вроде такого:
slice := []int64{1, 2, 3}
atomic.AddInt64(&slice[1], 3)
не тестил. новые элементы и прочие операции над слайсом только уже мьютексом защищать
Miroslav
Miroslav
Alexander
обычно области разбивают так, что каждый поток со своей работает. если это возможно тут
Георгий
всем добрый день. Интересен вопрос по работе gin. Сервер выполняет запросы синхронно и последовательно в один поток или нет (например как в ноде, в один поток асинхронно)?
Alexander
добрый день. В go другой подход: а именно порождение горутины на каждый запрос. Горутина для конечного юзера может восприниматься как поток, но обслуживание и порождение оной гораздо дешевле, и считай обходиться по цене асинхронщины, хотя код для конечного юзера в рамкаъ горутины последовательный.
Alexander
Будут задействованы все ядра при создании соответствующей нагрузки, если ты не ограничишь. Но, допустим если сервер будет ограничен на одно ядро, в плане использования процессора это будет не хуже модели с асинхронной обработкой на одном потоке.
Alexander
Если нужно объяснение почему, то спрашивай.
Георгий
Alexander
Miroslav
Спасибо)
Null
Опыт работы с Golang: путь проб и ошибок
https://nuancesprog.ru/p/10711/
@Golang_google
Gazimagomed
Произойдет ли “паника” при получении программой сигнала SIGTERM?
Alexander
тебе нужно отлавливать сигнал?
🔥
Alexander
Alexander
больше не тестил, мне именно лэтэнси важна была
Alexander
конечно, если попарсить еще GET и тело запроса, можно больше получить информации
Alexander
насчет гц, вроде бы как раз гц меньше должен работать в разы, так как аллокаций меньше
Alexander
потести, если не веришь
🔥
Alexander
хттпшный клиент тоже интересный. долбил net.http шный хэллоуворлд. на моей машине под виндой было 40к+ рпс с обычным клиентом и небольшой процент ошибок, fasthttp клиент 110к и без ошибок. потоки с клиентами потихоньку увеличивал
🔥
Ещё зависит от того как ты запускаешь листенер
🔥
Если использовать реюз порт то там тоже прирост должен быть
Alexander
но он конечно у них всей функциональностью не обладает, и в бою (полутипичный веб краулер) себя лучше не показал
Alexander
м?
Alexander
Ещё зависит от того как ты запускаешь листенер
Alexander
Если использовать реюз порт то там тоже прирост должен быть
🔥
?
Alexander
🔥
🔥
Без сжатия
Alexander
то есть в обоих случаях не было контент энкодинга со стороны веб сервера?
🔥
Alexander
я имею в виду именно контент энкодинг именно в рамках хттп протокола, а не в ручную сжатие и расжатие. для уточнения
🔥
Ilya
Друзья, нужны Middle Golang разрабы, есть такие?) Стучитесь в ЛС, есть вакансия на вилку 320
🔥
🔥
Почитай что такое c10k и c10m
Maxim
Почитай что такое c10k и c10m
so_reuseport+epoll как раз это решает, эта проблема давно уже решается. можно посмотреть, например как nginx решил ее в свое время
🔥
Maxim
Maxim
Null
Структурирование вашего приложения Golang: плоская структура против многоуровневой архитектуры
https://dev-gang.ru/article/strukturirovanie-vashego-prilozhenija-golang-ploskaja-struktura-protiv-mnogourovnevoi-arhitektury-0ddxmdrjws/
@Golang_google
Alexander
Μαριούπολη
Ребят , go build / go install, есть ли принципиальная разница, кроме места хранения исполняемых файлов ?
Black
any golang coder here i want make one script if any can i will pay
Vivek
Null
OpenTelemetry и Sentry - недооцененные инструменты трассировки распределенных систем на Golang
https://nuancesprog.ru/p/13923/
@Golang_google
Maks
Помните тип писал про то что наследование имеет свои преимущества перед агрегацией. Что без наследования жить нельзя. Я короче тогда не допер как его пример реализовать с датчиками. А сегодня меня осенило))) И еще раз убедился в том, что наследование не нужно в принципе)
Alexander
Maks
оч давно было) Это был сиплюсплюсник)
Maks
Мне друг один вопрос задал: Как без наследования быть с плоскими структурами не дублируя код.
Например(он шарпист) есть структура А плоская которая приходит в виде жсон и сериализуется в структуру. Есть стуктура Б которая имеет точно тот же набор полей и еще несколько полей. Без наследования придется либо делать вложенную структуру, либо дублировать все поля в другую плоскую структуру.
Maks
ура, я поймал какой то глюк в винде 11))) Редкий случай для меня)
Maks
Maks
Maks
Не ну это
А это не глюк
Не ну это
это норма)))))
Maks
Ну у меня обычно всё ок. Это реально какой то баг. Это же бетка еще.
Не ну это
Я уже привык, что в любой непонятной ситуации вылезает магазин мелкомягких
Maks
Нашел фикс, это именно в 11 винде в сборках есть такой баг в некоторых
Maks
Возможно))) Timachee или как то так)
Maks
звали
Maks
я не прогаю на ней по работе. только для себя. На го вполне себе, ничего не мешает. Базы я только в докере разворачиваю, тут с этим проблема нет, так как wsl2 работает более менее адекватно.
Maks
По работе только на линуксе
Alexander
а куда ты денешься?
NN
Alexander
ну можно же вложенную правда использовать. чего нет?
NN
Зачем она нужна если структура Б справляется
Alexander
надо структуру С будет, например
Alexander
потом интерфейс придумать, который Б и С реализуют - вот тебе и наследование почти
NN
Надо почитать матчасть, по идее всё должно быть предусмотрено