Roman
хотя чёт я брежу, это ж шрифт
Roman
хотя вместо отдельного шрифта можно бы было и просто плагином одно сочитание символов на другой UTF8 символ заменять для презентации, но такого не могу найти
ибо такие операторы как := можно бы было упростить до 1 символа
Roman
Anonymous
Вы тестировали? Я думал компилятор понимает такие вещи.
он действительно понимает
for i:=......... {
a:=....
}
что переменная а будет инициализирована при каждой итерации и убита гарбадж коллектором в конце в соответствии с синтаксисом языка!
Или тестировать соответствует ли GO своему синтаксису?
Anonymous
Vadim
Anonymous
главная оптимизация обьявить переменную ДО цикла
Anonymous
.
https://play.golang.org/p/uzpYXDzO1il
.
Можно вернуть nil
.
nil подходит под любой интерфейс
V
Anonymous
V
Я не думаю, я обычно проверяю
V
Но если это инт внутри цикла, то будет скорее всего переиспользована пямять
Anonymous
V
Benchmem и pprof в помощь
Pavel
Зависит от того что с этой переменной делают, да она может быть в стеке один раз и туда будет записываться новое значение каждую итерацию.
V
^это вот
V
Компилятор в большинстве случаев гораздо умнее программиста
Anonymous
Да а потом появляются статьи о повторном использовании переменых! Везет вам у вас все компилятор делает!
V
Вы предполагаете поведение не зная как отработает компилятор на самом деле, что плохо. Так ещё и другим рассказываете свои предположения.
Pavel
Ага и пример прям не полный я б сказал.
Pavel
Сильно зависит от того что в цикле и вы воду пытаетесь обсуждать.
V
Ускоряли без профилирования видимо?
Anonymous
ну там все просто уложись в секунду .... а уж с профилированием или нет ( я писал свой бенч) не важно
V
Т.е. вы по своему частному случаю сделали обобщение 👍
Anonymous
теорию затачивает практика!
V
Конкретно в этом случае ваше обобщение неверно.
V
Вступил в обсуждение, где вы говорили неверные вещи. Можете не читать.
Anonymous
Сильно зависит от того что в цикле и вы воду пытаетесь обсуждать.
скоре общий стиль , чтоб потом увидев кашмар в pprof не испралять именно эти алокации!! Да на простеших задачах без рекурсий вроде компилятор справляется, но когда програмеры молотят по 400кило в месяц , хотелось бы чтоб молотьба была наиболее успешной , а обьяснять почему компилятор не положил на стек переменную которая уйдет в рекурсию параметром я уже устал
Pavel
🏁Александр
шото мало
🏁Александр
это меньше запроса раз в три секунды
Anonymous
строк наверное
🏁Александр
да и строк... копейки
V
А потом вы этот код из цикла захотите вынести в функцию и начнёте передавать туда эту переменную...
V
Хорошее правило наоборот максимально сужать область видимости переменной
arkady
Ребята, подскажите пожалуйста, при работе с gorm, как правильно делать, если мне на клиентский запрос нужно отдать инфу из базы, мне для каждого пользователя открывать коннект, доставать данные и закрывать его или какие-то другие еще есть варианты?
Anonymous
arkady
arkady
Anonymous
со sqlite такое не прокатит
arkady
типо для постгреса создастся пул?
Anonymous
да, вот этот db создаётся один раз на всё время жизни программы. внутряках либы обычно уже реализован пул соединений
arkady
понял, спасибо
Artem
понял, спасибо
в main один раз делаешь db, err := gorm.Open(), потом везде таскаешь этот db и обращаешься к нему. ни локов, мютексов и другой фигни не нужно, он справится
arkady
Kirill
_ = abc
Kirill
Да
Kirill
@alek_si 🤘🏿 за такую работу с лицензиями в gosh
Kirill
кто не видел — https://github.com/gosh-lang/gosh
Kirill
почему бы и да?
Roman
почему бы и да?
потому-что Go не systems programming язык (IMHO), зачем писать интерпретатор на Go 🤔
Kirill
Kirill
я не планировал сегодня тебя тыкать в доку языка xD
Kirill
ты забываешь, что всегда есть rm -rf $GOROOT/src/runtime
Kirill
так что многие обоснования идут в /dev/null %)
Roman
рантайм то одно, но вот компилятор - другое) по оптимизации Go (AFAIK) не самый подходящий)
Kirill
ты не на то упираешь, Рома
Kirill
смотри
Roman
„Gosh is an interpreted language for Go ecosystem written in Go.“
он нацелен решить какие-то конкретные проблемы в экосистеме?
Kirill
то, что нельзя отрицать
Kirill
в Go херовая модель памяти
Kirill
в гошке есть горутины, а модель памяти неоптимальная для этого
Roman
но если смотреть с точки зрения SP тогда конечно да, модель памяти совершенно не подходящая
Kirill
модель памяти в контексте модели доступа к памяти — говно
Roman
Kirill
а что не ясно?
Roman
ты имеешь ввиду runtime memory pool? менеджмент памяти runtime’ом?
Kirill
я имею ввиду ВСЁ в контексте модели доступа к памяти
Kirill
куда не плюнь, сплошное говно
Roman
ну.. хорошо) AP задачи он решает относительно хорошо, для SP он не был задуман (Пайк сам в этом признался что изначальный уклон на systems programming был неверным)