heavycharged
разницы не заметил практически
🏁Александр
а почему обычный лок может быть выгоднее?
Daniel
RWMutex состоит из двух обычных
🏁Александр
даже если мы пишем и читаем на одном уровне, или даже больше пишем. По сравнению с обычным локом должно быть по крайне мерее на уровне производительности обычного lock
Daniel
не совсем обычных, но тем не менее из двух
Daniel
и если мы в основном пишем - Lock на RWMutex просто делает на одну операцию больше, чем надо
🏁Александр
это собственно проверка, что читатели не читают?
Daniel
ага
🏁Александр
ну не думаю что там чудовищный оверхед
Daniel
ну - он есть
Daniel
на самом деле - заметить его довольно трудно
🏁Александр
в случаи "универсальных" структуру, лучше думаю использовать тогда RW. А то завтра понадобиться читать и мы должны будем переписать, а так сразу готовое 🙂
heavycharged
@onokonem а есть какое-то соотношение читателей/писателей, когда есть смысл на обычный Mutex уходить. Чисто логически, это что-то вроде если на протяжении работы софта процент писателей больше 50% практически всегда, то лучше обычный мьютекс. Верно или не?
🏁Александр
🏁Александр
если у вас какая то обертка, в которой хрен поймешь как будут использовать то RW имхо 🙂
🏁Александр
потому что оверхед в случаи "неправильного" использования на "только запись" будет небольшой, а вот при приоритете чтения выйгрыш большой
heavycharged
Использовать RWMutex выгодно только тогда, когда большинству go-подпрограмм
требуется блокировка читателей, и за блокировку ведется состязание, т.е. go-
подпрограммам приходится регулярно ожидать для ее захвата. RWMutex требует бо­
лее сложной внутренней бухгалтерии, что делает его медленнее обычных мьютексов.
Из книги
G72K
Alisher
помогите с mux http.Router
Alisher
Alisher
Alisher
это в main.go
Alisher
я хотел бы выписать router в отдельный package
Alisher
Alisher
и я это сделал , но потом я хотел расписать еще child route > и пустил его на PathPrefix().Subrouter()
Alisher
и вызвал переменую TodayRouter в другом файле
Alisher
Alisher
чтобы дописать child
Zver
Зачем в гошных сорцах проект лежит?
Sergey
Всем привет!
Может кто то имел дело с webdriver и подскажет есть ли бибилиотеки на чистом C++ для взаимодействия по http?
Alexey
Aleksey
Alexey
Aleksey
А? Вставка?
Ну из csv например или наоборот в него
Alexey
Мерль
G72K
G72K
Всё кешируется на уровне сессии, т.е. предполагается что используется connection pool
Wingman
`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"
Wingman
что ему не нравится? :)
G72K
незнаю, но slice по ссылке передавать странно точно
Alexey
Sergey
G72K
Sergey
сишничество)
а строку например по ссылке передать уже не сишничество?
G72K
я ж про слайсы
Sergey
а в чем разница?
Максим
Всем привет!
Можно в Go передать фунцию аргументом?
Максим
не знаю, как правильно загуглить
Timur
можно
Максим
А есть пример?
Alexander
https://golang.org/doc/codewalk/functions/
Alexander
можно и передавать и возвращать. гуглил собсно по first class sitizen functions golang
Timur
https://play.golang.org/p/PzNdcpQKCdC
Максим
🏁Александр
народ, у меня просьба. Если есть у кого винда, проверите плиз - https://play.golang.org/p/CDwposLuNGU 🙂
Pawel
а почему ты думаешь что этот код будет работать в линуксе, и не работать в винде?
🏁Александр
потому что у меня так и не работает 🙂
🏁Александр
я ищу проблему
Pawel
а при чём тут винда?
Aleksandr
ошибки-то какие?
🏁Александр
никакой
🏁Александр
просто архив в 1 кб
Эмин
а ручками этот архив разархивируешь если?
Эмин
то там будет то что ты положил в него?
🏁Александр
неа
Эмин
мне интересно, на 24 строке он не ругается на второй итерации что ты пытаешься объявить уже объявленную переменную?
🏁Александр
нет
🏁Александр
все переменные внутри {} это локальные
🏁Александр
именно поэтому нельзя написать
🏁Александр
if a == b {
debug := "hello"
}
log.Print(debug)
🏁Александр
будет ругаться на необъявленную
🏁Александр
var debug string
if a == b {
debug = "hello"
}
log.Print(debug)
🏁Александр
правильный вариант
Эмин
https://golang.org/src/archive/zip/example_test.go
вот пример зип архивации
🏁Александр
спасибо кэп