@gogolang

Страница 1585 из 1630
Khusrav
18.10.2018
16:04:13
Если можете скинуте пожалуйсто

Dmitry
18.10.2018
16:04:34
Я попробую

Dmitri
18.10.2018
16:05:08
Если можете скинуте пожалуйсто
Емнип в этом чатике в прикрепленных файлах есть

Google
Dmitri
18.10.2018
16:05:50
Я попробую
Т.е. cmd.Run пинает процесс и сразу деаттачится от него.

В контексте go func() вы дергаете процесс и не дожидается завершения. На этом функция заканчивает работу и дескрипторы идут лесом

А рядом другая go func() уходит в бесконечный цикл с continue

Для таких случаев каналы и придумали, короче

Darwin
18.10.2018
16:15:07
а с каких пор time.After() стал возвращать chan вместо bool?

Aleksandr
18.10.2018
16:18:06
Darwin
18.10.2018
16:18:26
когда-то да

до версии 1.10 точно

Aleksandr
18.10.2018
16:18:56
странно

Darwin
18.10.2018
16:19:12
и я вот сегодня удивился

код который на проде работает, у меня перестал компилироваться

а там в коде это

Dmitry
18.10.2018
16:21:06
Т.е. cmd.Run пинает процесс и сразу деаттачится от него.
Если так, то почему такой код: shell.Run() fmt.Println("CMD:END") ничего не выводит в консоль?

Google
Dmitri
18.10.2018
16:22:25
time.After - две штуки

Одна - функция уровня пакета, которая возвращает chan

Darwin
18.10.2018
16:23:22
тааак

уже интереснее

Dmitri
18.10.2018
16:23:28
Одна - метод типа time.Time

Илья
18.10.2018
16:23:33
а с каких пор time.After() стал возвращать chan вместо bool?
https://github.com/golang/go/blame/849fc19cab2c3059379b21dde019f521ce772f5c/src/pkg/time/sleep.go

7 лет

Darwin
18.10.2018
16:23:55
7 лет
выше разъяснили)

Одна - метод типа time.Time
во, понятно теперь

спасибо

Dmitri
18.10.2018
16:24:06
И вот второй возвращает bool

Aleksandr
18.10.2018
16:24:15
до версии 1.10 точно
в 2009 возвращал chan int64, с 2011 chan Time. Bool никогда

Dmitri
18.10.2018
16:26:12
в 2009 возвращал chan int64, с 2011 chan Time. Bool никогда
func (t Time) After(anotherTime Time) bool - всегда

Darwin
18.10.2018
16:26:42
https://godoc.org/time#Time.After

вообщем, я не туда смотрел)

спасибо

Aleksandr
18.10.2018
16:26:58
func (t Time) After(anotherTime Time) bool - всегда
а речь шла про time.After()

Dmitri
18.10.2018
16:26:59
а речь шла про time.After()
Я про то, что их часто путают, уже третий раз на этот вопрос натыкаюсь

Aleksandr
18.10.2018
16:28:49
может быть. ну трудно поверить что человек получил на проде ошибку, не прочел ее, посмотрел в другой код и проассоциировал другой код со своей ошибкой

Google
Илья
18.10.2018
16:29:50
на этот случай линтеры ругаются, когда имя переменной пересекается с именем пакета

Aleksandr
18.10.2018
16:30:39
Вы переоцениваете человеков)
не, вполне нормально. но заход на ответ делаю как будто со взрослым разговариваю

Pawel
18.10.2018
16:32:38
Всем добрый день. Подскажите пожалуйста Если вызывать метод С++ библиотеки из golang, будет ли потеря производительности? Например в .net много тратится на маршалинг. А тут?
А в голанге оверхэд на системные вызовы на порядок больше чем в .net. Плюс есть несколько нюансов, которые доложны быть учтены, иначе сисколы обвалят гошную программу

Dmitry
18.10.2018
16:33:50
Т.е. cmd.Run пинает процесс и сразу деаттачится от него.
В общем, по всей видимости наоборот, Start деатачится, а Run нет

Dmitri
18.10.2018
16:38:33
В общем, по всей видимости наоборот, Start деатачится, а Run нет
У вас 2 потока, один из которых пишет в буфер, а второй читает. Одновременно, без синхронизации. При этом в первом процесс уже отработал и послал eof, т.е. закрыл поток. Короче не надо вот так... Запилите просто chan string

Все сразу станет проще

А я спать пошел)

Dmitry
18.10.2018
16:39:02
https://play.golang.org/p/GAUQy7aUoTd

Вот сделал на каналах

Та же фигня

Точнее, нет. Не та же. Пропускает строки

Pawel
18.10.2018
16:39:39
нужно emacs потому что
Если юзаешь вскод, то о брекпойнтах лучше сразу забыть дабы не нервничать лишний раз. Ну и как разтаки через принт дебажут джедаи - @onokonem, @madgopher высказывались

Dmitry
18.10.2018
16:39:44
Процесс продолжает работать, все ок, но вывод не полный

Artem
18.10.2018
16:40:49
В общем, по всей видимости наоборот, Start деатачится, а Run нет
На сколько я помню, самостоятельно никто из них не деатачится Run = Start + Wait там 4 строчки в функции

Dmitry
18.10.2018
16:41:34
На сколько я помню, самостоятельно никто из них не деатачится Run = Start + Wait там 4 строчки в функции
Эксперемент показал, что код, после Start продолжает работу. А после Run оостанавливается

Видимо не деатач а просто асик запуск

Да, точно. Это даже еще лучше

Artem
18.10.2018
16:42:28
Google
Pawel
18.10.2018
17:26:49
а?!
https://stackoverflow.com/questions/28272285/why-cgos-performance-is-so-slow-is-there-something-wrong-with-my-testing-code/28272990#28272990

SkyCoffee
18.10.2018
17:38:41
Это ведь два года назад было?

Pawel
18.10.2018
17:47:50
и что изменилось?

Evgeniy
18.10.2018
18:03:52
Это разве про сисколы?
видимо имелось ввиду вызов си кода

Pawel
18.10.2018
18:04:13
Daniel
18.10.2018
18:04:44
Сисколы не через cgo вызываются

Pawel
18.10.2018
18:06:02
значит я не корректно сформулировал. У человека сказано было изначально "вызывать метод С++ библиотеки из golang"

Denys
18.10.2018
18:07:48
а куда питон делся

днем же обсуждали

зачем вам это го ?

Roman
18.10.2018
18:10:26
зачем вам это го ?
действительно, зачем вам это "го"))))

Denys
18.10.2018
18:10:43
?

я сарказма не уловил

Daniel
18.10.2018
18:26:07
значит я не корректно сформулировал. У человека сказано было изначально "вызывать метод С++ библиотеки из golang"
ну вот я пользовался zmq из go, и упирался вовсе не в тормоза cgo. так что проблема несколько преувеличена, а иногда - надумана

Evgeniy
18.10.2018
18:28:30
ну вот я пользовался zmq из go, и упирался вовсе не в тормоза cgo. так что проблема несколько преувеличена, а иногда - надумана
у меня есть библиотека на плюсах, которая делает манипуляции с массивом байт. Если я напишу TCP клиент на Go и буду в цикле (по мере поступления инфы из сети) буду вызывать cgo, как это отразится на производительность?

Либо мне вообще какой-то другой подход выбрать. Даже не знаю

Daniel
18.10.2018
18:29:49
скорее всего - производительность будет выше, если переписать манипуляции на go. но не факт.

ну и скорее всего разницы в производительности вы не заметите

Evgeniy
18.10.2018
18:31:51
да, наверное данные по tcp буду намного реже приходить, чем буду затраты на вызов утилиты))

Google
Pawel
18.10.2018
18:38:32
Ilya
18.10.2018
18:41:23
Гайс, кто знает, есть ли в опенсурсе какие-то проекты на грейме?

Aleksandr
18.10.2018
18:42:05
есть мнение что им пользуется только один человек в своих петах

но он щас конечно прибежит и расскажет как юзает его в продакшне и назовет еще парочку полуизвестных контор, в которых есть люди, знающие людей, использующий грейм в проде

Иван
18.10.2018
18:43:54
Можно для не посвящённых, что такое грейм

Ilya
18.10.2018
18:44:10
но он щас конечно прибежит и расскажет как юзает его в продакшне и назовет еще парочку полуизвестных контор, в которых есть люди, знающие людей, использующий грейм в проде
А в го вообще принято, что основная документация из годоков, или я просто искать не умею? Никому не в обиду, но не первый проект, где из доков я нихрена не одупляю без примеров

А чтение исходников навевают вселенскую тоску после десятой записи функции в непонятный канал

Aleksandr
18.10.2018
18:45:56
годоки - это генерируемая из комментов в коде документация. я бы не сказал что так принято. В большинстве проектов дай бог чтобы ридми был

но вообще да

Ilya
18.10.2018
18:46:38
но вообще да
Я просто с питоном сравниваю по документации, поэтому несколько озадачен

Ну в планее ее количества

Aleksandr
18.10.2018
18:59:43
Помогите пожалуйста уже не могу понять. в шаблоне после вызова цикла больше ничего не выводится. что в цикле и дальше не выводиться. вот тут https://github.com/sashaaro/docker-container-proxy/blob/master/network.html#L48 то есть выводиться последним тегом последний открытый тег <td> перед циклом

Roman
18.10.2018
19:04:24
А в го вообще принято, что основная документация из годоков, или я просто искать не умею? Никому не в обиду, но не первый проект, где из доков я нихрена не одупляю без примеров
примеры в годоках обычно тоже имеются, но чаще конкретные примеры в README или в Wiki (если на гитхабе). А если эдакого не имеется тогда руки прочь от такого кода

не могу понять каким хреном у меня редко но метко появляется data race между защищённым кодом и strechr/testify func (con *connection) deregisterTask() { unlink := false con.stateLock.Lock() con.tasks-- if !con.isActive && con.tasks < 1 { unlink = true } con.stateLock.Unlock() if unlink { con.unlink() } } не смотря на то что строка: con.tasks-- вроде как защищена мутексом - каким то образом вот эта функция: github.com/qbeon/webwire-go/vendor/github.com/stretchr/testify/assert.Len() D:/go-workspace/src/github.com/qbeon/webwire-go/vendor/github.com/stretchr/testify/assert/assertions.go:538 +0x190 а именно тут внутри if'а: if l != length { return Fail(t, fmt.Sprintf("\"%s\" should have %d item(s), but has %d", object, length, l), msgAndArgs...) } пораждает data race

причём довольно редко происходит

Aleksandr
18.10.2018
19:23:07
так в чем рейс то? связи между двумя кусками кода не видно

почему на tasks грешишь, не очевидно

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