У меня тоже в 2017 была первая попытка (весьма успешная) самописной оберки поверх epool, ибо встренное ну никуда не годилось. Потом еще несколько реинкарнаций.
Но в наше время как раз таки сменился фокус на grpc, ибо по работе примерно все общение сервисов на нем, а реализация в google.golang.org/grpc отвратительна по эффективности (на GoFunc рассказывал подробности и что можно сделать).
P.S. У Go несколько лет назад (сейчас, емнип, уже исправили) при работе http2 на каждое соединение уходило по три горутины. Весело было, когда нужно хотя бы 100к коннектов держать.
Не могу не вспомнить тут свой доклад с GopherCon Russia 2018 про ускорение TCP, убиранием слоев абстракций в гошной stdlib. Там по факту не было готовой либы, только все примеры в репе, но объяснялось где и на чем теряем, и какие альтернативы.
У нас тоже какое-то время было подобное решение. Но потом поняли, что в кубере с несколькими az интереснее балансить еще и с учетом az-локальности, чтобы по возможности гонять трафик в пределах одной зоны (быстрее и дешевле). И по единственному имеющемуся адресу подключения резолвим его IP'шки и все az, считаем веса с учётом близости и знания своего az, и по полученному варианту уже делаем weighted-RR.
Если в вашем сообщении поменять местами Java и Go, то смысл не изменится :) Непонятность и малый опыт разработчиков на рынке - это что-то лет так 10 назад, или больше.
Еще вспомнилось, как через инструкцию AAM (деление AL на 10) можно было делить AL на любое другое значение, потому что инструкция была в два байта, а второй байт был как раз делителем. Ну и все "недокументированно" пользовались.
До кучи к остальным комментаторам, и в позапрошлогоднем недорогом Huawei p30 есть такой режим в стандартной камере. Ещё и включается иногда сам, определяя тип фото.
Upd. Упс, как раз Asbor передо мной про это же написал.
Вероятно, часть и не в курсе, что импорты можно сортировать (если нет на это линтеров/ревью). А так бы IDE по умолчанию показывала, как можно сделать красиво и читаемо. Но с возможностью выключить в настройках, как сейчас с gofmt.
Если производительности "стандартного" пакета к мускулю не достаточно, то можно взять альтернативу: https://github.com/go-mysql-org/go-mysql/. Он не особо совместим с database/sql, но позволяет прокачивать значительно больше запросов через себя за счет минимизации абстракций и аллокаций. Плюс умеет быть не только клиентом, но это уже не по теме поста.
Имхо, очень зря забыли про Ninebot KickScooter MAX G30P. При примерной той же категории, скорости и весе, дает более-менее адекватный запас хода. Ну и качество у Ninebot хорошее.
У меня тоже в 2017 была первая попытка (весьма успешная) самописной оберки поверх epool, ибо встренное ну никуда не годилось. Потом еще несколько реинкарнаций.
Но в наше время как раз таки сменился фокус на grpc, ибо по работе примерно все общение сервисов на нем, а реализация в google.golang.org/grpc отвратительна по эффективности (на GoFunc рассказывал подробности и что можно сделать).
P.S. У Go несколько лет назад (сейчас, емнип, уже исправили) при работе http2 на каждое соединение уходило по три горутины. Весело было, когда нужно хотя бы 100к коннектов держать.
Не могу не вспомнить тут свой доклад с GopherCon Russia 2018 про ускорение TCP, убиранием слоев абстракций в гошной stdlib. Там по факту не было готовой либы, только все примеры в репе, но объяснялось где и на чем теряем, и какие альтернативы.
https://youtu.be/809uWH-wvIo?si=ZtKq0U2vtyMwD08c
У нас тоже какое-то время было подобное решение. Но потом поняли, что в кубере с несколькими az интереснее балансить еще и с учетом az-локальности, чтобы по возможности гонять трафик в пределах одной зоны (быстрее и дешевле). И по единственному имеющемуся адресу подключения резолвим его IP'шки и все az, считаем веса с учётом близости и знания своего az, и по полученному варианту уже делаем weighted-RR.
Хорошая статья. Местами прямо перебор с оверинжинирингом и NIH, о чем, в том числе, часть комментов выше, но и полезное есть.
Если в вашем сообщении поменять местами Java и Go, то смысл не изменится :) Непонятность и малый опыт разработчиков на рынке - это что-то лет так 10 назад, или больше.
В гошке для этого есть стандартный пакет https://pkg.go.dev/golang.org/x/sync/singleflight
Вспомнилось https://habr.com/ru/post/257563/
Блин, сам же и опечатался :) Но хоть ссылка верная.
далее rax и rcx должны содержать какие-то индексы, по котоым кладется единичка и ноль
Все же rcx и rdx. И оно на странице 0x2 :)
Еще вспомнилось, как через инструкцию AAM (деление AL на 10) можно было делить AL на любое другое значение, потому что инструкция была в два байта, а второй байт был как раз делителем. Ну и все "недокументированно" пользовались.
>Что мы можем с этим сделать? Скорее всего, ничего.
Или я не так понял, или https://pkg.go.dev/runtime#KeepAlive поможет
До кучи к остальным комментаторам, и в позапрошлогоднем недорогом Huawei p30 есть такой режим в стандартной камере. Ещё и включается иногда сам, определяя тип фото.
Upd. Упс, как раз Asbor передо мной про это же написал.
Вероятно, часть и не в курсе, что импорты можно сортировать (если нет на это линтеров/ревью). А так бы IDE по умолчанию показывала, как можно сделать красиво и читаемо. Но с возможностью выключить в настройках, как сейчас с gofmt.
Эх, мечты, мечты )
Я про редактор комментариев на Хабре, не в Goland, если что.
Да, сейчас и использую кастомный File Watcher.
Но тут в новости как раз про gofmt по умолчанию. А goimports c -format-only делает автоформат еще полезнее. Вот я и прокомментировал.
А вместо gofmt вот бы сразу `goimports -format-only -w $ FilePath $`, который и форматирует и импорты нормально расставляет.
P.S. Редактор комментов упоролся и не дает вставить FilePath нормально без пробелов. Их там быть не должно.
Настройка хоткеев в плазме - тот еще адок.
Не против, что уж тут такого.
Просто для более полного обзора.
Если производительности "стандартного" пакета к мускулю не достаточно, то можно взять альтернативу: https://github.com/go-mysql-org/go-mysql/. Он не особо совместим с database/sql, но позволяет прокачивать значительно больше запросов через себя за счет минимизации абстракций и аллокаций. Плюс умеет быть не только клиентом, но это уже не по теме поста.
Имхо, очень зря забыли про Ninebot KickScooter MAX G30P. При примерной той же категории, скорости и весе, дает более-менее адекватный запас хода. Ну и качество у Ninebot хорошее.
Надеюсь, что так, а не нашли лазейку.
И тут перекупы.
Как они ограничение в наличие покупок в аккаунте до июня обошли? Или держат аккаунты с единичными покупками на всякий случай?