@gogolang

Страница 945 из 1630
Александр
25.03.2018
21:47:53
а тут типо мы читаем как будто лока вообще нет, пока не придет писатель?

The
25.03.2018
21:48:39
да

там даже скорость вообще практически не проседает, емнип.

я как-то замерял

Google
The
25.03.2018
21:49:25
разницы не заметил практически

Александр
25.03.2018
21:49:58
а почему обычный лок может быть выгоднее?

Daniel
25.03.2018
21:50:28
RWMutex состоит из двух обычных

Александр
25.03.2018
21:50:31
даже если мы пишем и читаем на одном уровне, или даже больше пишем. По сравнению с обычным локом должно быть по крайне мерее на уровне производительности обычного lock

Daniel
25.03.2018
21:50:46
не совсем обычных, но тем не менее из двух

и если мы в основном пишем - Lock на RWMutex просто делает на одну операцию больше, чем надо

Александр
25.03.2018
21:52:07
это собственно проверка, что читатели не читают?

Daniel
25.03.2018
21:52:16
ага

Александр
25.03.2018
21:52:42
ну не думаю что там чудовищный оверхед

Daniel
25.03.2018
21:52:54
ну - он есть

на самом деле - заметить его довольно трудно

Александр
25.03.2018
21:53:55
в случаи "универсальных" структуру, лучше думаю использовать тогда RW. А то завтра понадобиться читать и мы должны будем переписать, а так сразу готовое ?

The
25.03.2018
21:54:42
@onokonem а есть какое-то соотношение читателей/писателей, когда есть смысл на обычный Mutex уходить. Чисто логически, это что-то вроде если на протяжении работы софта процент писателей больше 50% практически всегда, то лучше обычный мьютекс. Верно или не?

Google
Александр
25.03.2018
21:55:49
если у вас какая то обертка, в которой хрен поймешь как будут использовать то RW имхо ?

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

The
25.03.2018
21:58:31
Использовать RWMutex выгодно только тогда, когда большинству go-подпрограмм требуется блокировка читателей, и за блокировку ведется состязание, т.е. go- подпрограммам приходится регулярно ожидать для ее захвата. RWMutex требует бо­ лее сложной внутренней бухгалтерии, что делает его медленнее обычных мьютексов. Из книги

Alisher
26.03.2018
01:26:43
помогите с mux http.Router





это в main.go

я хотел бы выписать router в отдельный package



и я это сделал , но потом я хотел расписать еще child route > и пустил его на PathPrefix().Subrouter()

и вызвал переменую TodayRouter в другом файле



чтобы дописать child

Zver
26.03.2018
05:35:20
Зачем в гошных сорцах проект лежит?

Alexey
26.03.2018
06:04:54
нет, они нужны не только в циклах, от них хорошо вообще всегда. PREPARE оно ж на сессию, а не на транзакцию.
Ну да, не только в циклах, но сессии не бесконечны, лучше ограничивать количество соответственно не наготовишь на весь проект запросов. Подготовленные запросы нужны когда один и тот же запрос часто повторяется. Если поставить жизнь сессии в минуту, а запрос происходит раз в две минуты, заготовленный не нужен.

Sergey
26.03.2018
06:26:38
Всем привет! Может кто то имел дело с webdriver и подскажет есть ли бибилиотеки на чистом C++ для взаимодействия по http?

Google
Алексей
26.03.2018
06:41:48
Alexey
26.03.2018
06:42:44
А? Вставка?
Ну из csv например или наоборот в него

Алексей
26.03.2018
06:43:23
Ну из csv например или наоборот в него
Так мы вроде о бд говорим

Alexey
26.03.2018
06:44:34
Так мы вроде о бд говорим
Я уже теряюсь про что мы говорим... какое кэширование, я про prepared query

Алексей
26.03.2018
06:45:25
Я уже теряюсь про что мы говорим... какое кэширование, я про prepared query
Я про запросы к бд в циклах. А вы о чем?) Бд кэширует план запросов, которые prepared

Sergey
26.03.2018
06:45:36
Боюсь вы немного не по адресу
У меня была надежда, что кто то с этим сталкивался

Let Eat
26.03.2018
06:59:20
Ну да, не только в циклах, но сессии не бесконечны, лучше ограничивать количество соответственно не наготовишь на весь проект запросов. Подготовленные запросы нужны когда один и тот же запрос часто повторяется. Если поставить жизнь сессии в минуту, а запрос происходит раз в две минуты, заготовленный не нужен.
Не знаю как принято в Го, в Slick например PREPARE делается перед первым использованием запроса, если подходящий PREPARE уже был сделан для запроса, то он переиспользуется. т.е. не надо их заранее "наготавливать", всё само.

Всё кешируется на уровне сессии, т.е. предполагается что используется connection pool

Wingman
26.03.2018
07:06:01
`models := make([]Models.AuthProfile,0) err := db.DB.Model(&models).Select() if err != nil && err != pg.ErrNoRows { return err } for _, model := range models {` vetshadow: warning: internal error: no range for "models"

что ему не нравится? :)

Let Eat
26.03.2018
07:09:54
незнаю, но slice по ссылке передавать странно точно

Sergey
26.03.2018
07:20:53
Let Eat
26.03.2018
07:21:33
Sergey
26.03.2018
07:25:12
сишничество)
а строку например по ссылке передать уже не сишничество?

Let Eat
26.03.2018
07:45:59
я ж про слайсы

Sergey
26.03.2018
07:46:49
а в чем разница?

Максим
26.03.2018
08:07:48
Всем привет! Можно в Go передать фунцию аргументом?

не знаю, как правильно загуглить

Google
Timur
26.03.2018
08:08:15
можно

Максим
26.03.2018
08:08:30
А есть пример?

Alexander
26.03.2018
08:09:29
https://golang.org/doc/codewalk/functions/

можно и передавать и возвращать. гуглил собсно по first class sitizen functions golang

Timur
26.03.2018
08:10:06
https://play.golang.org/p/PzNdcpQKCdC

Максим
26.03.2018
08:12:21
https://play.golang.org/p/PzNdcpQKCdC
спасибо, то что нужно

Александр
26.03.2018
10:23:08
народ, у меня просьба. Если есть у кого винда, проверите плиз - https://play.golang.org/p/CDwposLuNGU ?

Pawel
26.03.2018
10:44:28
а почему ты думаешь что этот код будет работать в линуксе, и не работать в винде?

Александр
26.03.2018
10:48:43
потому что у меня так и не работает ?

я ищу проблему

Pawel
26.03.2018
10:49:13
а при чём тут винда?

Aleksandr
26.03.2018
10:50:12
ошибки-то какие?

Александр
26.03.2018
10:50:30
никакой

просто архив в 1 кб

Эмин
26.03.2018
10:50:59
а ручками этот архив разархивируешь если?

то там будет то что ты положил в него?

Александр
26.03.2018
10:51:38
неа

Эмин
26.03.2018
10:53:56
мне интересно, на 24 строке он не ругается на второй итерации что ты пытаешься объявить уже объявленную переменную?

Александр
26.03.2018
10:55:08
нет

все переменные внутри {} это локальные

Google
Александр
26.03.2018
10:55:24
именно поэтому нельзя написать

if a == b { debug := "hello" } log.Print(debug)

будет ругаться на необъявленную

var debug string if a == b { debug = "hello" } log.Print(debug)

правильный вариант

Эмин
26.03.2018
10:56:39
https://golang.org/src/archive/zip/example_test.go вот пример зип архивации

Александр
26.03.2018
10:57:40
спасибо кэп

Эмин
26.03.2018
10:57:56
где ты производишь запись непосредственную? как на 37 строке

ты пишешь только заголовки файла

я не прав?

Александр
26.03.2018
11:00:09
нет

io.Copy же

читатель у нас zipfile, писатель writer

который собственно получен от zipWriter

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