@gogolang

Страница 1137 из 1630
Alexander
07.06.2018
14:31:03
Блин, как вообще по этому tool trace что-то понять



И какой вывод из этого я должен сделать? что у меня много Read/Write, ну это и так понятно

Tigran
07.06.2018
14:33:25
У тебя настолько много Read/Write, что оптимизировать что-то ещё бессмысленно

Google
Alexander
07.06.2018
14:35:23
Моя задача сделать так, чтобы коннекты коннектились, а не зависали...

Илья
07.06.2018
14:36:48
хм, попробуй отцепить тред который аксептит явно

runtime.LockOSThread()

Denis
07.06.2018
14:44:51
Моя задача сделать так, чтобы коннекты коннектились, а не зависали...
Прошу прощения, если уже было, но еполл не пробовал?

Alexander
07.06.2018
14:45:08
Походу я как-то не так сделал, но LockOSThread чет не помог

func (srv *Server) Start() (err error) { runtime.LockOSThread() address := srv.host + ":" + srv.port srv.listener, err = net.Listen("tcp", address) if err != nil { log.WithError(err).WithFields(log.Fields{ "address": address, }).Error("Error on listener start") os.Exit(1) } log.WithFields(log.Fields{ "address": address, }).Info("Server start") for { log.Info("accepting start...") conn, err := srv.listener.Accept() if err != nil { log.WithError(err).Error("accepting connection") os.Exit(1) } log.WithFields(log.Fields{ "from": conn.RemoteAddr().String(), "to": conn.LocalAddr().String(), }).Info("accepting connection") srv.acceptConnection(conn) } return }

попробовал так

блин, надо было в gist завернуть, соре

Прошу прощения, если уже было, но еполл не пробовал?
не пробовал, ибо слабо представляю что это такое

и для полноты картины func (srv *Server) acceptConnection(conn net.Conn) { srv.connLock.Lock() defer srv.connLock.Unlock() connection := NewConnection(srv, conn) srv.connections[connection.id] = connection go srv.connections[connection.id].handleConnection() }

вот как раз handleConnection() и занимается Read/Write в свой net.Conn

Denis
07.06.2018
14:48:30
не пробовал, ибо слабо представляю что это такое
Если не получится иное, то попробуй. На питоне, к примеру, это стоило мне минут 15 времени с разбором в теме. Так и ищется — epoll golang

Google
Denis
07.06.2018
14:52:09
в golang уже epoll под капотом юзается в network pool
https://gist.github.com/wolfeidau/33dcf2ea2648a10bb9e7 — не актуально?

Daniel
07.06.2018
14:53:06
зависит от того, чего вы хотите

Jentry
07.06.2018
14:53:55
https://gist.github.com/wolfeidau/33dcf2ea2648a10bb9e7 — не актуально?
здесь для файловых дескрипторов, но зачем, если есть select на каналах? + для сети уже есть epoll в кишках, как я говорил

https://golang.org/src/runtime/netpoll_epoll.go#L59

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

Kaspar
07.06.2018
17:24:01
Блин, как вообще по этому tool trace что-то понять
я скорее имел ввиду новый UI который с 1.10 появился



https://making.pusher.com/go-tool-trace/

https://medium.com/@cep21/using-go-1-10-new-trace-features-to-debug-an-integration-test-1dc39e4e812d

$continue$
07.06.2018
17:46:14
привет.

использовал кто-то? https://github.com/golang-ui/nuklear

Michael
07.06.2018
18:04:39
привет.
привет) только присматривался, по инфо с Инета выглядит обещающе

$continue$
07.06.2018
18:04:57
https://i.imgur.com/lras2B9.png

Michael
07.06.2018
18:07:18
уже тыкаю.)
да, смотрится ок, но я пока остановился на Qt Qml, не сложно и под ведро собрать

$continue$
07.06.2018
18:10:39
да, смотрится ок, но я пока остановился на Qt Qml, не сложно и под ведро собрать
разобраться бы, как работать с ним. трудновато. новый проект, не очень хорошо гуглится (приходится по аналогии с Cи делать :()

Sergey
07.06.2018
18:11:57
на то они и биндинги к си

Michael
07.06.2018
18:12:35
разобраться бы, как работать с ним. трудновато. новый проект, не очень хорошо гуглится (приходится по аналогии с Cи делать :()
на сколько я понял, то авторы проекта и не предполагали высокоуровневых абстракций, и да - по примерам, может что-то и на SO есть

Dmitry
07.06.2018
18:24:34


Google
Dmitry
07.06.2018
18:25:04
это к вчерашним спорам о LOC в го и расте

Python
07.06.2018
18:33:28
/

Sergey
07.06.2018
18:35:02
это к вчерашним спорам о LOC в го и расте
эмм.. не представляешь, сколько wtf per minute у меня возникает при чтении кода обоих типов никак не зависит от языка

Аркадий
07.06.2018
19:07:16
Скажите пожалуйста, подойдёт ли GO для бекенда мультиплеерной игры? Если не брать в расчет пинг до сервера. Взаимодействовать с клиентом планировал через вебсокеты. Реализация игры предполагалась через закрытые комнаты(отдельно работающие горутины). То есть как только комната заполнилась - запустилась горутина которая будет обслуживать своих клиентов. Так вот, мб кто-то чтото делал похожее? Подойдёт го для этого? С го плохо знаком.

Petr
07.06.2018
19:08:14
Поищи по чату

Тут уже публиковали игру на гошке

Kaspar
07.06.2018
19:09:13
посмотри примеры gorilla ws чат комнаты, там пол игры уже готово

Sergey
07.06.2018
19:10:40
конеш (нет)

Dmitry
07.06.2018
19:11:16
конеш(да)

Аркадий
07.06.2018
19:11:44
посмотри примеры gorilla ws чат комнаты, там пол игры уже готово
Да я думал может есть более лёгкие протоколы вместо вкбсокетов

Dmitry
07.06.2018
19:12:08
свой протокол

Petr
07.06.2018
19:12:13
Написал 2 статьи как я делаю онлайновую игру на Go http://dorogoy.tilda.ws/gosaveindie1 http://dorogoy.tilda.ws/gosaveindie2

Kaspar
07.06.2018
19:12:32
ну ты сперва упрись в лимиты ws потом пиши свой велосипед

premature optimization is the root of all evil

Peter
07.06.2018
19:14:34
Коллеги, кто-нибудь использовать nats в продакшене? Сегодня целый день сравнивали rabbit и nats для работы в кластере под нагрузкой, rabbit 3000000 сообщений примерно 30 минут обрабатывал и машины несколько раз память в swap сбрасывали и cpu был под 100%, а nats примерно в 10 раз быстрее отработал и по ресурсам намного лучше, может кто-то расскажет про подводные камни nats?

The
07.06.2018
19:27:34
ребятки, а кто юзает vgo. у меня в $GOPATH/src/ есть два пакета. один импортирует другой. но vgo пытается его стянуть по пути https://имя/пакета. как это решается?

Google
Kaspar
07.06.2018
19:31:12
мы както так заморочились в поисках альтернативы рэббита, что выкинули просто его, изменив архитектурный подход очередей-эвентов

Alexander
07.06.2018
19:32:02
ну раббит - это все же ampq, с его достоинствами и недостатками. но выжать из него десятки тысяч сообщений в секунду - реально.

Alexander
07.06.2018
19:38:08
Все ломается.

Artem
07.06.2018
19:54:34
Всем привет! Использую GoLand - не могу настроить goreturns - в качестве основного форматора кода - кто нибудь настраивал, или просто там по умолчанию вшит gofmt и все?

Admin
ERROR: S client not available

Artem
07.06.2018
20:15:57
ну и подключенеи его через File Watchers должно быть простым
ошибок никаких просто в tools есть только gofmt а мне в идеале чтобы при событиях изменения или сохранения файла/ов и перед тестами или сборкой все форматировалось goreturns

Илья
07.06.2018
20:17:02
Dmitry
07.06.2018
20:34:18
у меня в vsc goreturns чето не работал(не вызывал goimports), пришлось переключить на goimports. к слову

Artem
07.06.2018
20:38:05
сделал так

но в version control после переоткрытия проекта никаких изменений по форматированию в файлах нет

Антон
07.06.2018
20:44:50


Упс не сюда

Artem
07.06.2018
20:53:47
все разобрался, спасибо!

Google
Евгений
07.06.2018
20:57:01
Банан!1

Банан!

Artem
07.06.2018
21:00:20
все разобрался, спасибо!
точнее нет, также ничего не происходит, можно как то задать в keymap действие чтобы file watcher перечитал открытый файл например?

Zaur
07.06.2018
23:45:58
Народ, привет. Есть некий Router, который служит как Handler в сервере. Вопрос такой: как можно по необходимости менять роуты в запущенном сервере? Типо заблокировал, подменил роуты, разблокировал

Роутер gorilla/mux

Slava
07.06.2018
23:56:54
сделай свой промежуточный хендлер

и в нём вызывай роутер

типа мидлвари

соответственно подменяй роутер там

только будь осторожен =) во многих роутерах всё в первый раз кешируется и какое-нибудь дерево строится

Zaur
08.06.2018
00:01:19
? понял принял

Спс

Kirill
08.06.2018
00:27:18
только будь осторожен =) во многих роутерах всё в первый раз кешируется и какое-нибудь дерево строится
Обычно дерево не потокобезопасное, но может на ходу перестраиваться

Slava
08.06.2018
00:28:38
ну можно его перестраивать и подменять просто, но всё зависит от задачи, конечно

/dev/null
08.06.2018
03:06:44
http://vmob.me/REF-782724BD Не рекламы ради)

Peter
08.06.2018
04:51:50
сам с ним не работал, имхо,подозреваю что скорость из-за непосредственной доставки сообщений, а значит нет гарантий если что-то навенется
Да, сам nats не гарантирует сохранность, но есть nats-streaming с хранилищем в котором хранятся сообщения и если одна машина вылетит из кластера, то сообщения не потеряет

https://bravenewgeek.com/dissecting-message-queues/
Сразу натолкнулись на эту статью как начали

The
08.06.2018
06:49:08
подкиньте мысль, генерирую http запросы, иногда нужно делать request cancel, когда делаю, то, естественно, сам запрос выполняется с ошибкой, а ошибка попадает в логи. можно ли как-то логировать все ошибки, кроме тех, которые возникают при закрытии контекста (... context canceled). Можно конечно проверять на суффикс строки, но это помоему костыль.

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