@gogolang

Страница 1147 из 1630
Alexandr
13.06.2018
14:28:04
а шо такое continue OUTLOOP ?

Aleksandr
13.06.2018
14:28:28
Alexandr
13.06.2018
14:29:00
понятно

Daniel
13.06.2018
14:29:38
а шо такое continue OUTLOOP ?
а вот почему бы не пройти гоутур и не почитать доку?

Google
Alexandr
13.06.2018
14:32:03
Sergey
13.06.2018
14:33:29
как этого избежать?
использовать горутины

Денис
13.06.2018
15:00:38
использовать горутины
то есть вынести ввод данных в отдельный поток?

Daniel
13.06.2018
15:01:28
например

Maksim (Ellrion)
13.06.2018
15:17:40
в go нет возможности как то глобально ловить паники? т.е. паники и из горутин?

Jentry
13.06.2018
15:21:21
и не в go нет, поток - независимая ветвь исполнения, я бы прокидывал callback и внутри вызываемой функции в recover его вызывал. А можешь озучить, зачем это?

Jentry
13.06.2018
15:24:27
в лог и без этого должна попадать причина падения, а если не попадает, то где-то ты не доловил err. А узнать кому и зачем, тебе или какому-то менеджеру воркеров?

Maksim (Ellrion)
13.06.2018
15:29:57
в лог и без этого должна попадать причина падения, а если не попадает, то где-то ты не доловил err. А узнать кому и зачем, тебе или какому-то менеджеру воркеров?
в смысле недоловил err? это же паника. просто имеется достаточно большая система, написана местами не хорошо, при этом еще и активно дорабатывается и рефачится. и хотелось бы просто все факты падения залогировать через общую систему логирования в сентри

но то что нельзя я понял

Jentry
13.06.2018
15:40:07
но то что нельзя я понял
посмотри, как это сделано в go chi https://github.com/go-chi/chi/blob/master/middleware/recoverer.go#L18

по сути это обертка (мидлварь), в которую каждый запрос оборачивается и там recover(), как я предлагал выше

Google
Денис
13.06.2018
16:06:23
Подскажите, как правильно преобразовывать chan int в просто int

Денис
13.06.2018
16:07:44
Tour of go прошли?
намёк понял

Jentry
13.06.2018
16:20:27
А можно подробнее про "не рассчитан" и где та точка рассчетной нагрузки? Я так понял из доклада, что проблема именно в огромной куче и указателях, проблема то есть в архитектуре и принципиальном unscale подходе

Vladimir
13.06.2018
16:20:35
Я на похожее поведение на прошлой работе тоже наступал в момент когда люди делали слишком сложные запросы

И в общем в начале никто не думал что базы будут на нем делать

Отсюда и проблемы с гц на которые наступает любая жирная база на гошке

В докладе в том числе упоминалось про то что гц в го родом из 70ых :)

Jentry
13.06.2018
16:22:56
Не знаю, говорили много раз что го делался как замена питону в скриптах и простых glue api
А кто говорил? В питоне-то нет проблем с GC, там реф-каунтинг и утечки памяти при сложных циклических зависимостях

Jentry
13.06.2018
16:23:47
тогда это выглядит как будто ты говорил, го для скриптов и glue api как из пушки по воробьям

Vladimir
13.06.2018
16:24:25
Я где то читал, где не помню

Можешь поискать сам если хочешь

Google
tsov
13.06.2018
16:36:37
тогда это выглядит как будто ты говорил, го для скриптов и glue api как из пушки по воробьям
донован писал, что гошана придумали чтобы убить унылых заумных косячных программистов Си и дать наконец то рнструмент для системного программирования с высоким КПД от разработчика

Dmitri
13.06.2018
16:49:22
Отсюда и проблемы с гц на которые наступает любая жирная база на гошке
Как решаются эти проблемы? Пишуться ли такие высоконагруженные системы на го вообще?

Vladimir
13.06.2018
16:58:51
Или страдать и пытаться ещё как то снизить gc pressure

Или плюнуть и вынести часть кода в сервис на rust/c++

Alexander μήδομαι
13.06.2018
17:05:18
точнее не разделять память между функциями
Вот это похоже на Go-way. Спрятать по максимуму памяти внутри горутин и обмениваться транзакциями через каналы. Но будет ли это эффективно?

Daniel
13.06.2018
17:27:34
Vladimir
13.06.2018
17:31:13
Плюс канал по скорости чуть медленее чем слайс за мьютексом

Vladimir
13.06.2018
18:19:34
А?!
а что не так? Канал это буфер, mutex, списки sender'ов и ресиверов и энное колличество магии. См runtime/chan.go

если очень упрощенно

соответственно активно их используя ты огребешь lock contention и вот все что с ним прилагается и на нагрузке разницы особой не будет по скорости (даже каналы окажутся чуть медленее если 1 к 1)

Мерлин
13.06.2018
18:21:20
а что не так? Канал это буфер, mutex, списки sender'ов и ресиверов и энное колличество магии. См runtime/chan.go
Ну тем не менее я бы не советовал городить свою имплементацию поверх слайса и мьютекса

Я к этому

Vladimir
13.06.2018
18:21:27
Я бы тоже

Просто полезно понимать что они не lock free и не магия

Google
tsov
13.06.2018
19:26:12
Или страдать и пытаться ещё как то снизить gc pressure
вот есть магия такая: //go:notinheap у описания типа структуры защищает от написания кода с возможными ссылками для GC

tsov
13.06.2018
19:31:05
A type marked as go:notinheap may not live in the heap, and does not require a write barrier.

Vladimir
13.06.2018
19:31:20
Any type that contains a go:notinheap type is itself go:notinheap. Structs and arrays are go:notinheap if their elements are. Maps and channels of go:notinheap types are disallowed. To keep things explicit, any type declaration where the type is implicitly go:notinheap must be explicitly marked go:notinheap as well.

tsov
13.06.2018
19:32:29
делай с uintptr :)

James
14.06.2018
02:15:13
Что странно, я зашел сюда по рекламе. Хотя я не пишу на го.

Admin
ERROR: S client not available

James
14.06.2018
02:15:18


Никита
14.06.2018
05:30:34
Как лучше всего передать мапу в функцию: по указателю или нет? В функции только чтение с мапы

tsov
14.06.2018
05:31:18
внимание, github! как правильно оформлять PR в исходный проект, если поменял пути импорта на свои, а в PR это вставлять не хочешь? кто какие трюки git знает? на гитхабе нет выборочного PR, а майнтейнеру хочется облегчить работу. но делать ветку с исправленными путями тоже кажется криво.

Daniel
14.06.2018
05:37:02
надо по оригинальному пути к себе грузить из своей репы

и не менять пути импорта

tsov
14.06.2018
05:40:50
это как?

я ж свой реп клонирую, у него свой путь

Daniel
14.06.2018
05:41:27
git clone репа куда

tsov
14.06.2018
05:42:19
это путаница может быть. особенно если потом гогетом или депом тащить

вобщем я так понимаю кроме как создать отдельную ветку и там вернуть пути - особо надежных вариантов и нет?

Daniel
14.06.2018
05:43:10
депу придется прояснить, он умеет

гогет пользуется уже имеющимся, если оно есть

Google
tsov
14.06.2018
05:44:00
мне кажется это кривовато

Daniel
14.06.2018
05:44:26
это самое прямое, что может быть

tsov
14.06.2018
05:44:44
подмена репы получается

а если потом забуду и в другой проект гогетом затащу?

Daniel
14.06.2018
05:46:26
до того, как будет пуореквест принят?

tsov
14.06.2018
05:46:34
да

он может быть и не принят, а мне надо

Daniel
14.06.2018
05:46:50
так если он быстро не принят - все одно надо форкать и самому развивать

tsov
14.06.2018
05:47:28
ну ок, значит через отдельную ветку pr делать

Daniel
14.06.2018
05:48:59
а тестить как?

или без тестирования засылать?

очень умно...

Aleksey
14.06.2018
05:50:21
Всем привет! Ищу помощи от знающих людей. Есть консольное приложение которое принимает числа от пользователя. Как сделать так чтобы если пользователь не вводит число на протяжении 10 секунд программа выдавала рандомное число в консоль и запрашивала следующее? Go начал изучать этой ночью, многого пока не понимаю. Гугл и просмотр форумов ответа не дали

Vadim
14.06.2018
05:51:40
То есть у тебя и scan будет слать число в канал, и горутина с таймером. То число, которое будет прислано первым и пойдёт дальше)

Vadim
14.06.2018
06:14:00
Это рубрика Вопрос недели?
Скорее дня, или даже часа)

Страница 1147 из 1630