
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

Jentry
07.06.2018
14:50:16

Google

Denis
07.06.2018
14:52:09

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

Jentry
07.06.2018
14:53:55
https://golang.org/src/runtime/netpoll_epoll.go#L59
работает достаточно тупо - первый раз пробуем в сокет без блокировки, если сокет занят, то кидаем в пул и блокируемся в ожидании ответа

Kaspar
07.06.2018
17:24:01
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

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

Michael
07.06.2018
18:12:35

$continue$
07.06.2018
18:13:30

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

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

Petr
07.06.2018
19:08:14
Поищи по чату
Тут уже публиковали игру на гошке

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

stixlink
07.06.2018
19:09:43

Dmitry
07.06.2018
19:10:27

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

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

Аркадий
07.06.2018
19:11:44

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?

Аркадий
07.06.2018
19:16:52

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

Kaspar
07.06.2018
19:28:37

Google

Илья
07.06.2018
19:29:47

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

Илья
07.06.2018
19:31:43
тут довольно подробно

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

Илья
07.06.2018
19:37:52

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

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

Admin
ERROR: S client not available

Илья
07.06.2018
20:01:12
какие ошибки то?

Artem
07.06.2018
20:15:57

Илья
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
ну можно его перестраивать и подменять просто, но всё зависит от задачи, конечно

Alexander
08.06.2018
01:39:23

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

Peter
08.06.2018
04:51:50

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