Size: a a a

2020 June 08

VL

V L in Go-go!
Любой интерфейс - аллокация в куче, все верно.
источник

p

pragus in Go-go!
V L
Любой интерфейс - аллокация в куче, все верно.
если прилетает поинтером - то нет
источник

VL

V L in Go-go!
pragus
если прилетает поинтером - то нет
Дополнительной аллокации не будет, если уже в куче.
источник

VL

V L in Go-go!
Однако разговоры про аллокацию - это преждевременная оптимизация. ИМХО, читаемость важнее и борюсь за нее.
источник

p

pragus in Go-go!
V L
Дополнительной аллокации не будет, если уже в куче.
почему тогда тут они есть https://play.golang.org/p/NCD_0UMpb_z  ?
источник

VL

V L in Go-go!
Потому что пустой интерфейс - это особый случай. Я говорил про обычные интерфейсы.
В любом случае пустой интерфейс Никите не нужен в его коде.
источник

VL

V L in Go-go!
Там для пустого интерфейса ещё базовые типы вроде тоже не аллоцируются, но могу быть неправ.
источник

p

pragus in Go-go!
V L
Потому что пустой интерфейс - это особый случай. Я говорил про обычные интерфейсы.
В любом случае пустой интерфейс Никите не нужен в его коде.
ничего особенного в нём нет. интерфейс - это структура из двух поинтеров, один из которых - на данные.
источник

S

Sergey in Go-go!
Можно пруф на то, что пустой интерфейс отличается это других интерфейсов в плане аллокаций и передачи?
источник

p

pragus in Go-go!
когда нам прилетает значение через стек мы вынуждены сделать копию
источник

VL

V L in Go-go!
Sergey
Можно пруф на то, что пустой интерфейс отличается это других интерфейсов в плане аллокаций и передачи?
Не дам, видимо я путаю с тем, что было в proposal и так и не дошло.
источник

VL

V L in Go-go!
pragus
когда нам прилетает значение через стек мы вынуждены сделать копию
А когда вы идете в кучу вы можете пролететь мимо кеша.
источник

p

pragus in Go-go!
V L
А когда вы идете в кучу вы можете пролететь мимо кеша.
это как?
источник

Н

Никита in Go-go!
pragus
а вы попробуйте поиспользовать потом где-то ваш interface{}
Если вы про тот, что в обработке http запроса, то там эта структура только маршалится и отдается в ответ. Она нигде не используется больше
источник

Н

Никита in Go-go!
pragus
а вы попробуйте поиспользовать потом где-то ваш interface{}
А вообще в целом по структуре, нормально сделать так, как я показал в примере? То есть весь процессинг для одного юзкейса скинуть в один файл.
источник

p

pragus in Go-go!
Никита
А вообще в целом по структуре, нормально сделать так, как я показал в примере? То есть весь процессинг для одного юзкейса скинуть в один файл.
вроде норм.
источник

VL

V L in Go-go!
pragus
это как?
Чтение и запись в кучу, а не в стек вызова, напрягает кеш.  Плюс объект в куче - напряг для gc. Но это все воросы оптмизаций, а не читаемости.
источник

p

pragus in Go-go!
V L
Чтение и запись в кучу, а не в стек вызова, напрягает кеш.  Плюс объект в куче - напряг для gc. Но это все воросы оптмизаций, а не читаемости.
о каком кеше речь?
источник

VL

V L in Go-go!
pragus
о каком кеше речь?
CPU, чем ближе данные в памяти - тем лучше для кеша. В случае, когда все на стеке - оно вот все, рядом.
источник

p

pragus in Go-go!
V L
CPU, чем ближе данные в памяти - тем лучше для кеша. В случае, когда все на стеке - оно вот все, рядом.
вы всегда храните данные в байтах?
источник