
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

Google

Alexandr
13.06.2018
14:32:03

Денис
13.06.2018
14:33:08

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 его вызывал. А можешь озучить, зачем это?

Maksim (Ellrion)
13.06.2018
15:22:12

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

Maksim (Ellrion)
13.06.2018
15:29:57
но то что нельзя я понял

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

Vladislav
13.06.2018
16:07:13

Денис
13.06.2018
16:07:44

Vladimir
13.06.2018
16:18:08
Были планы сделать request oriented gc, но кроме пропозала из 2016 кажется ничего не произошло
Это их tsdb для мониторинга

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

Vladimir
13.06.2018
16:20:35
Я на похожее поведение на прошлой работе тоже наступал в момент когда люди делали слишком сложные запросы
И в общем в начале никто не думал что базы будут на нем делать
Отсюда и проблемы с гц на которые наступает любая жирная база на гошке
В докладе в том числе упоминалось про то что гц в го родом из 70ых :)

Jentry
13.06.2018
16:22:56

Vladimir
13.06.2018
16:23:01
И что generational что request oriented был бы лучше

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

Vladimir
13.06.2018
16:24:25
Я где то читал, где не помню
Можешь поискать сам если хочешь

Google

tsov
13.06.2018
16:36:37

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

tsov
13.06.2018
17:09:15

Daniel
13.06.2018
17:27:34

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

Мерлин
13.06.2018
18:18:06

Vladimir
13.06.2018
18:19:34
А?!
а что не так? Канал это буфер, mutex, списки sender'ов и ресиверов и энное колличество магии. См runtime/chan.go
если очень упрощенно
соответственно активно их используя ты огребешь lock contention и вот все что с ним прилагается и на нагрузке разницы особой не будет по скорости (даже каналы окажутся чуть медленее если 1 к 1)

Мерлин
13.06.2018
18:21:20
Я к этому

Vladimir
13.06.2018
18:21:27
Я бы тоже
Просто полезно понимать что они не lock free и не магия

Google

tsov
13.06.2018
19:26:12

Vladimir
13.06.2018
19:30:50

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 будет слать число в канал, и горутина с таймером. То число, которое будет прислано первым и пойдёт дальше)

Fedor
14.06.2018
05:57:31

Kaspar
14.06.2018
05:58:47

Vadim
14.06.2018
06:14:00