@proGO

Страница 1063 из 1674
Александр
19.12.2017
11:47:43
ну я же по ссылке комплю в хендлеры экземпляр

сорри, указатель в смысле на экземляр либы Tracer

соотвественно теоретически может быть "драка"

Aleksandr
19.12.2017
11:48:27
гонка называется

Google
Aleksandr
19.12.2017
11:48:32
ну и?

Александр
19.12.2017
11:48:46
такое не разруливается языком?

Aleksandr
19.12.2017
11:48:51
мьютексы

Александр
19.12.2017
11:49:01
это понятно, я имел введу прозрачно

Aleksandr
19.12.2017
11:49:08
прозрачно мьютексами

Александр
19.12.2017
11:49:25
мьютексы это не вариант

Aleksandr
19.12.2017
11:49:57
почему?

Александр
19.12.2017
11:50:30
прозрачно мьютексами
ты предлагаешь лок поставить? и дожидаться когда же мы на пойдем из уже тела хедлера это юзать?

Aleksandr
19.12.2017
11:51:07
лок на обращение

nezorflame
19.12.2017
11:51:56
такое не разруливается языком?
'Язык' только подскажет тебе, где может появиться гонка

Если собрать с параметром -race

Разруливать ее - твоя обязанность

Aleksandr
19.12.2017
11:53:47
лок на обращение
сделай геттер, в котором "прикроешь" обращение к переменной мьютексом

Google
nezorflame
19.12.2017
11:53:59
^ Который будет возвращать копию текущего состояния

Ну или копируй сам, разыменовывая указатель :)

Вариантов много

Александр
19.12.2017
11:55:00
еще раз, мьютекст это лок. лишние тормоза будут

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

в результате образуется узкое место

nezorflame
19.12.2017
11:55:30
Одно дело просто Mutex, другое RWMutex

Ридлоки просто юзай при копировании

Александр
19.12.2017
11:55:56
мне проще из миддлеваре не писать состояние тогда

а передавать его сразу из хедлера

nezorflame
19.12.2017
11:56:05
Ну или так

Taras ?
19.12.2017
11:56:12
ох жесть)

nezorflame
19.12.2017
11:56:21
От юз кейса зависит всегда

Aleksandr
19.12.2017
11:58:15
мне проще из миддлеваре не писать состояние тогда
у тебя и при чтении могут быть проблемы

ты можешь читать то, что прямо в данный момент записывается. вылетишь

Александр
19.12.2017
11:58:45
у тебя и при чтении могут быть проблемы
я вообще уберу спорную переменную из структуры, буду ее явно передавать в параметр

когда либу зову из хедлера

я просто хотел сэкомномить его ?

в миддлеваре накормить и передавать не 3 параметра на вызов, а два

Kirill
19.12.2017
12:03:16
@ruelephant наверное всем уже интересно посмотреть на то "чудо" что вы делаете, есть оно в opensource ?

Google
Александр
19.12.2017
12:03:42
нет

да там все банально ?

просто я еще туплю с пыха то

собственно оберточка

https://pastebin.com/RwJDwAcs

в хедлерах так: Tracer.Trace(r.Context(),"JSON render", func() { ... крутим вертим, преобразуем ... successResponce.WriteJson(w) })

в middleware надо накормить перед этим: requestContext := r.Context() reflectName := reflect.TypeOf(handler); span, spanContext := opentracing.StartSpanFromContext(requestContext, reflectName.String()) traceext.HTTPMethod.Set(span, r.Method) traceext.HTTPUrl.Set(span, r.URL.Path) defer span.Finish() r = r.WithContext(spanContext) handler.ServeHTTP(w, r)

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

примеры из инета

http://eng.uber.com/wp-content/uploads/2017/02/8-Screen-Shot-Trace-View.png

Nick
19.12.2017
12:15:23
Кто как работает с датами в гоу?

Aleksandr
19.12.2017
12:15:43
Nick
19.12.2017
12:16:04
там очень скудный api

Aleksandr
19.12.2017
12:16:34
там очень скудный api
чего тебе не хватает?

Александр
19.12.2017
12:17:17
прочитал как "скучный" ?

Nick
19.12.2017
12:18:16
полноценной работы с зонами

в общем хотелось бы как в java

Aleksandr
19.12.2017
12:19:18
Nick
19.12.2017
12:19:42
никак

Александр
19.12.2017
12:19:51
в общем хотелось бы как в java
напишите суда пример как вам хотелось бы, псевдофункцями ?

Google
Aleksandr
19.12.2017
12:19:53
в общем хотелось бы как в java
я конечно может быть и знаю как там в java, но на твоем месте не расчитывал бы на это

никак
в моем го есть работа с зонами

Nick
19.12.2017
12:21:20
напишите суда пример как вам хотелось бы, псевдофункцями ?
хочу имея epoch c зоной трансформировать его в другой epoch , но затереть всю инфу о зоне и сделать время 00:00

Aleksandr
19.12.2017
12:22:57
что такое epoch? unixtime?

Nick
19.12.2017
12:23:16
ага

Lucky
19.12.2017
12:26:50
BenchmarkGzip-4 10000 193931 ns/op 810693 B/op 39 allocs/op BenchmarkRawJS-4 20000 66616 ns/op 57766 B/op 25 allocs/op

Я так понимаю нет смысла использовать gzip

Mike
19.12.2017
12:28:10
На локалхосте тестил?)

Александр
19.12.2017
12:28:38
Admin
ERROR: S client not available

Lucky
19.12.2017
12:30:49
Mike
19.12.2017
12:31:06
да)
Лол)

Ну на локалхосте нет смысла х)

Lucky
19.12.2017
12:31:45
так а как ещё бенчмарки то делать?

Александр
19.12.2017
12:31:58
так блин

g-zip это выйгрыш когда канал 1 мегабит на весь офис и ты пытаешься посмотреть "войну и мир" ?

там конечно, весь текст запаковывается в зип, получаешь не 300 кб, а 1

браузер распаковывает его по приезду

Lucky
19.12.2017
12:33:05
да там json маленький, обучаюсь через рефакторинг

Google
Lucky
19.12.2017
12:33:22
17,8 kB (17 787 bytes)

Александр
19.12.2017
12:33:41
gzip для апи нужен

узнаете когда вам надо будет получить коллекцию на пару мегабайт по спутниковому интернету в магадане ?

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

Lucky
19.12.2017
12:34:59
так у меня апиха как раз

Александр
19.12.2017
12:35:29
ну вы мериете прямо блин не выходя даже за процесс

бесполезно бенчом мерить http ?

Lucky
19.12.2017
12:36:14
так сама операция дорогая. я через wrk ещё тестил, там падение в 10 раз

Nik
19.12.2017
12:36:20
А ктонить прикручивал fmt как external tools к IDEA

?

Lucky
19.12.2017
12:36:30
т.е. компрессия не окупилась

Александр
19.12.2017
12:36:54
т.е. компрессия не окупилась
это смотря на сколько у вас медленные клиенты

не все же сидять в москве, на 100 мегабитах ?

Aleksandr
19.12.2017
12:37:12
хочу имея epoch c зоной трансформировать его в другой epoch , но затереть всю инфу о зоне и сделать время 00:00
ну, проблема только в установке времени. в апи го не делают неоднозначно реализуемых вещей, оставляя это на совести конечного разраба

Lucky
19.12.2017
12:37:49
не все же сидять в москве, на 100 мегабитах ?
думаю больше чем 20 кб я отдавать не буду

Mike
19.12.2017
12:38:55
так а как ещё бенчмарки то делать?
Поднять виртуалочку, ограничить скорость соединения, собрать результаты на различной максимальной скорости, построить график? Бенчить на локалхосте бессмысленно вещи, завязанные на выигрыш при низкой скорости соединения

Alexey
19.12.2017
12:56:28
А кто с GORM работал? Если я делаю: user := &User{} И потом db.Find(user) Он выберет только одну запись? Limit 1 сам добавит? Или выберет все, а потом только одну вставит в результат?

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