Size: a a a

2019 December 26

p

pragus in Go-go!
Andrey S
просто вот если взять простой пример - вызов функции, в которую передается string например - я пока не посмотрел внутренности fasthttp и не знал что передается целиком хидер а не указатель на него в отличие от []byte например... @madgopher или я гоню? :)
Нет разницы между строкой и слайсом в этом контексте
источник

SP

Slava Pinchuk in Go-go!
🦉Sova🦉
не мешайте
Я до сих пор на работе торчу и нагрузка пол гигабита в секунду, так что мне точн онадо написать ))
источник

p

pragus in Go-go!
Slava Pinchuk
Привет коллеги!

Как можно залабать переменную в памяти сервера , чтобы к этой переменной имели доступ все сервисы и когда им надо обновляли ее ?
Можно
источник

🦉

🦉Sova🦉 in Go-go!
Slava Pinchuk
Я до сих пор на работе торчу и нагрузка пол гигабита в секунду, так что мне точн онадо написать ))
будто работа в ночное время - что-то сверх
источник

p

pragus in Go-go!
Slava Pinchuk
редис периодичесик обновляет этотпараметр в разных го рутинах
следовательно надо будет апдейтить эту переменную в памяти
Тебе целиком обновлять надо?
источник

SP

Slava Pinchuk in Go-go!
да
источник

SP

Slava Pinchuk in Go-go!
редисы на отдельных машинах их 3
сервис го на 4-той
источник

I

Igor in Go-go!
Slava Pinchuk
редис периодичесик обновляет этотпараметр в разных го рутинах
следовательно надо будет апдейтить эту переменную в памяти
Если я правильно понял, то лучше сделать как-то так (не кидайтесь тапками, это первое, что в голову пришло):
1) залочить мьютекс
2) безопасно обновить эту переменную у себя
3) записать в редис
4) разлочить мьютекс

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

SP

Slava Pinchuk in Go-go!
Igor
Если я правильно понял, то лучше сделать как-то так (не кидайтесь тапками, это первое, что в голову пришло):
1) залочить мьютекс
2) безопасно обновить эту переменную у себя
3) записать в редис
4) разлочить мьютекс

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

AS

Andrey S in Go-go!
pragus
Нет разницы между строкой и слайсом в этом контексте
Вопро сбыл почему он разыменовывается, почему не sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
источник

I

Igor in Go-go!
Slava Pinchuk
Так это я просот так сказал
много где при определенных запросах обновляется одно значений инкрементится еще какое, там вагон мест где что-то меняется
тогда каналы и мьютексы. в зависимости от контекста
источник

AS

Andrey S in Go-go!
Igor
тогда каналы и мьютексы. в зависимости от контекста
или atomic
источник

p

pragus in Go-go!
Andrey S
Вопро сбыл почему он разыменовывается, почему не sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
Потому что надо взять Data и Len из reflect.SliceHeader
источник

I

Igor in Go-go!
Slava Pinchuk
Привет коллеги!

Как можно залабать переменную в памяти сервера , чтобы к этой переменной имели доступ все сервисы и когда им надо обновляли ее ?
Ну где-нить в отдельном модуле ее определить можно, и обращаться к этому модулю
источник

SP

Slava Pinchuk in Go-go!
🦉Sova🦉
будто работа в ночное время - что-то сверх
10 дней без выходных
заебали уже откровенно
источник

p

pragus in Go-go!
Andrey S
или atomic
Лучше атомик, но это мир вот этого unsafe
источник

AS

Andrey S in Go-go!
pragus
Потому что надо взять Data и Len из reflect.SliceHeader
ты и так возьмешь - пофиг грубо говоря у тебя reflect.StringHeader или *reflect.StringHeader - не важно какого типа будет sh
источник

AS

Andrey S in Go-go!
важно знать в каком виде передается строка или слайс - грубо говоря unsafe.Pointer(&s) вернет *reflect.StringHeader или указатель на него
источник

p

pragus in Go-go!
Andrey S
ты и так возьмешь - пофиг грубо говоря у тебя reflect.StringHeader или *reflect.StringHeader - не важно какого типа будет sh
Вообще, да ) можно кастить SliceHeader в StringHeader ))
источник

AS

Andrey S in Go-go!
pragus
Вообще, да ) можно кастить SliceHeader в StringHeader ))
это да, но не наоборот
источник