@proGO

Страница 829 из 1674
Alexey
04.09.2017
12:59:30
типа того https://play.golang.org/p/4Uyv0EPqpf

Alex
04.09.2017
13:00:57
типа того https://play.golang.org/p/4Uyv0EPqpf
https://play.golang.org/p/9TI4v1xLOc

Ты мне ответил моим же примером, тебе надо новую ссылку сделать :)

Alexey
04.09.2017
13:02:01
ну лан

Google
Nikolay
04.09.2017
13:02:38
товарищи, а кто-нибудь работал с чтением из Kafka? Sarama использовали, небось?
интересует вот эта штука, в частности. Ибо нужны consumer groups https://godoc.org/github.com/bsm/sarama-cluster

Alexey
04.09.2017
13:04:38
Еще вопрос: Канал созданный следующим объявлением "var chan int" имеет емкость 0, 1, множество?

Короче ответ: 0

Nikolay
04.09.2017
13:05:33
я, честно, пока еще не вкурил в фишку, зачем нужны буферизованные каналы

без них должно и так все работать

Alexey
04.09.2017
13:06:07
я тож их еще ниразу не применял

Alex
04.09.2017
13:07:10
без них должно и так все работать
С их помощью можно например мьютекс эмулировать, но это такое, неудачный пример :)

Sergey
04.09.2017
13:08:58
эмулировать мьютекс через мьютекс?..

Alexey
04.09.2017
13:09:47
эмулировать мьютекс через мьютекс?..
Ехал мьютекс через мьютекс

Alex
04.09.2017
13:09:55
Я же сказал, что неудачный пример :)

Nikolay
04.09.2017
13:10:06
вы мне про кафку расскажете или нет? неужто никто с ней не работал?

Kirill
04.09.2017
13:10:21
Google
Ilya
04.09.2017
13:10:40
я, честно, пока еще не вкурил в фишку, зачем нужны буферизованные каналы
затем чтобы параллельно кусок буфера раскидывать на другие горотины. например в несколько процессов задачу решать

Sergey
04.09.2017
13:10:57
Их там не один
да, но это неважно. пытаться эмулировать мьютексы с помощью мьютексов - это, мм, пахнет тяжело действующими веществами.

Nikolay
04.09.2017
13:11:04
разве нет?

nezorflame
04.09.2017
13:11:21
ну он считает по размеру буфера

и можно со считанным работать параллельно

:)

Alexey
04.09.2017
13:11:38
я, честно, пока еще не вкурил в фишку, зачем нужны буферизованные каналы
Одна горутина может читать из канала и отправлять пачкой данные куда-то. А за это время ей другие горутины ещё накидают пачку. Ну, например.

Ilya
04.09.2017
13:12:06
в каком смысле параллельно? чтение из канала все равно последовательное же
затем что блокировки на чтении не наступает пока буфер

запулил 3 значения - запустил 3 горотины. ждешь пока просрется хоть одна и заново

не надо про пулл сопроцессов думать, например

Alexey
04.09.2017
13:14:46
данные в канале с объемом 10 будут читаться не по очереди, а сразу 10 и будут читаться?

Alex
04.09.2017
13:14:51
Ну это необязательно параллельно

Это никто не гарантирует

Concurrency is not parallelism, жи

Nikolay
04.09.2017
13:15:32
ну вот у меня просто сейчас задача

nezorflame
04.09.2017
13:15:37
асинхронно, ок

Nikolay
04.09.2017
13:15:49
надо читать из кафки данные как можно быстрее, ибо данных дохрена

неужто добавление буферизации может помочь?

nezorflame
04.09.2017
13:16:28
может воркгруппа помочь, вероятно

Google
Alexey
04.09.2017
13:16:30
ну попробуй - нам расскажешь

Еще вопрос из мейловских тестов, что будет в выводе:

func keepCalmAndPanic(msg string) { panic(msg) } func main() { defer func() { if err := recover(); err != nil { fmt.Print(err.(error).Error()) } }() go keepCalmAndPanic("Aargh!") fmt.Printf("It's fine") }

Nikolay
04.09.2017
13:17:34
может воркгруппа помочь, вероятно
ээ, это же просто инкрементальный мьютекс

как он поможет?

Ilya
04.09.2017
13:17:43
Concurrency is not parallelism, жи
Я ж напейсал что сопроцессы

Alexey
04.09.2017
13:17:47
короче выйдет "It's fine"

nezorflame
04.09.2017
13:17:57
Alexey
04.09.2017
13:18:26
не всегда
там проверка на error - которого нет

Alex
04.09.2017
13:19:18
там проверка на error - которого нет
Может быстрее горутина с panic отработать

nezorflame
04.09.2017
13:19:20
там проверка на error - которого нет
скорее всего, он напечатает итс файн и вывалится со стактрейсом в панику

от машины зависит, в общем

Alexey
04.09.2017
13:20:12
вот ща проверил https://play.golang.org/p/dzoh28cjuU

Alexey
04.09.2017
13:20:15
На плее быстрее выходит, горутина не успевает:) Но вообще, конечно, это правда не определено.

https://play.golang.org/p/x_Aa7TWlLs - если time.Sleep впихнуть

Alex
04.09.2017
13:20:45
вот ща проверил https://play.golang.org/p/dzoh28cjuU
На плее много поведения детерминировано

nezorflame
04.09.2017
13:20:50
как он поможет?
wg.Add(n) for i := 0; i < n; i ++ { go func(wg sync.Waitgroup) { doSomething() wg.Done() }(wg) } wg.Wait()

Nikolay
04.09.2017
13:21:32
Google
Nikolay
04.09.2017
13:21:41
я не понимаю, как он поможет быстрее кафку разбирать)

Alexey
04.09.2017
13:23:12
https://certification.mail.ru/tests/golang35/start/

Alexey
04.09.2017
13:23:22
А насколько много данных из неё? Сколько штук в секунду? Проще всего вроде на каждое горутину плодить и не париться в общем случае.

Alexey
04.09.2017
13:23:33
А вы еэти тесты проходили, просто при приеме на работу - у меня их спросили

nezorflame
04.09.2017
13:23:47
сейчас прошел ради интереса, а вообще нет

у нас свой опросник

Nikolay
04.09.2017
13:23:56
плюс их парсить надо успевать

Alexey
04.09.2017
13:24:28
у нас свой опросник
Посмотреть можно?

nezorflame
04.09.2017
13:24:46
кину в личку

Alexey
04.09.2017
13:25:41
несколько десятков тысяч в секунду, вот в чем дело
Тогда я бы поднял горутин по количеству ядер процессора, чтоб снизить до минимума оверхед от них. А буфер нафиг не нужен, да. Одна получает данные, и кидает в канал, где остальные обрабатывают.

Nikolay
04.09.2017
13:26:22
я вот и думал, может, несколько консюмеров стартовать или смысла нет?

Alex
04.09.2017
13:27:03
кину в личку
Можно и мне тоже?

nezorflame
04.09.2017
13:27:10
:)

Alexey
04.09.2017
13:27:18
кину в личку
И мне:) Да в чат уже кидай.

Nikolay
04.09.2017
13:27:23
А процессор на 100% сожран?
я этот код запускаю на тестовом сервере с 52 ядрами. Там реально сложно все сожрать

nezorflame
04.09.2017
13:27:53
да он простенький, обычно новичкам задаем на собесах

Google
Alexey
04.09.2017
13:28:40
ну зато нет двусмысленных вопросов как в мейле

Alexey
04.09.2017
13:28:56
я этот код запускаю на тестовом сервере с 52 ядрами. Там реально сложно все сожрать
надо htop смотреть. Может та, первая, которая получает данные, не успевает разбирать и раздавать. И вообще стоит запрофайлить:)

Alexey
04.09.2017
13:29:02
Например: Каким образом реализован механизм исключений (exception) в Go?

nezorflame
04.09.2017
13:29:16
Sparrow
04.09.2017
13:29:56
троллинг ага

Alex
04.09.2017
13:30:28
Спасибо :)

nezorflame
04.09.2017
13:30:45
творение не мое, спасибо автору)

Alexey
04.09.2017
13:30:55
nezorflame
04.09.2017
13:32:29
как ни странно, приходит народ на собесы

и спрашивают А что такое iota?

при этом опыт на Go год+

Alex
04.09.2017
13:32:51
Alexey
04.09.2017
13:33:05
Ну зачем писать-то несколько iota в одном блоке const :(

nezorflame
04.09.2017
13:33:36
тесты вообще зло

Alexey
04.09.2017
13:33:37
Я на втором засыпался:)
Я бы на третьем. Расплывчатый вопрос.

Alexey
04.09.2017
13:34:19
Nikolay
04.09.2017
13:34:20
какой вопрос - такой ответ

Alexey
04.09.2017
13:34:44
Ну ещё в куче и в стеке

Alex
04.09.2017
13:34:56
Я бы на третьем. Расплывчатый вопрос.
Это из разряда, что в куче, а что в стеке, наверное

Страница 829 из 1674