
Anton
17.10.2017
13:13:11

Илья
17.10.2017
13:13:35
откуда в го пришел?

Anton
17.10.2017
13:13:45
перл

Roman
17.10.2017
13:13:56
жесть

Google

Anton
17.10.2017
13:13:57
а так с улицы )

AxiS
17.10.2017
13:14:49

Илья
17.10.2017
13:14:51
хм, ну там блоки памяти, насколько я помню, тоже не по 1ому выделяются
просто ты про cap в перле и не знаешь, пока в профиль не залезешь

Anton
17.10.2017
13:21:37
ну там внутри-то и не массив ведь по факту
какой-нибудь односвязный список, я точно не помню

Илья
17.10.2017
13:29:58
Нене, доступ же за о1

Konstantins
17.10.2017
13:36:23
просто это оптимальней, чем при каждом добавлении элемента реалоцировать память
иначе ты и память засрешь быстрее маленькими объектами
а поговорить?
обсудим алокацию массива в памяти?) или уже все обсудили?

Roman
17.10.2017
13:47:45
а вам есть, что добавить или исправить? я не прочь новых знаний набраться

Alexey
17.10.2017
13:54:29

Konstantins
17.10.2017
13:54:44
нет

Google

Alexey
17.10.2017
13:54:56
А как?

Konstantins
17.10.2017
13:54:58
сам массив указателей то неприрывая структура
объекты могут в хипе где угодно валяться, для них выделяется столько, сколько нужно
а вот массив указатель должен лежать монолитов

Alexey
17.10.2017
13:56:03
А мы про массив указателей говорим, или просто про массив? Массив да, монолитом, я про это и говорил.
И по нему поэтому легко брать нужное, знаешь его начало, и знаешь, на сколько умножить индекс, чтоб в памяти сдвинуться...

Konstantins
17.10.2017
13:57:33
не, ну если взять обычный моссив объектов, объектам не обязательно лежать именно "в самом массиве"

Alexey
17.10.2017
13:57:42

Roman
17.10.2017
13:57:47
я думал, что все массивы должены нефрагментированно и последовательно храниться, чтобы можно смещаться по памяти

Konstantins
17.10.2017
13:57:55
т.е. не надо в памяти хранить длинную змею объектов

Alexey
17.10.2017
13:58:04

Konstantins
17.10.2017
13:58:12
главное, чтобы указатели на эти объекты были по порядку
не, не надо

Alexey
17.10.2017
13:58:38
type A struct {}
x := [3]A{a1, a2, a3} - змея же будет. Тут без указателей.

Konstantins
17.10.2017
13:58:38
нужна змея адресов этих объектов
на уровне языка не будет
а в памяти оно как угодно может быть

Roman
17.10.2017
13:59:06

Alexey
17.10.2017
13:59:44
А если
x := [3]*A{&a1, &a2, &a3}
то тут уже только указатели внутри массива, а объекты хз где.

Konstantins
17.10.2017
14:00:03
в смысле есть у тебя arr (length == 10). Это значит, что у тебя должно быть в памяти пространство на 10 адресов

Google

Konstantins
17.10.2017
14:00:17
а объекты сами хер знает где в хипе

Alexey
17.10.2017
14:00:48

Konstantins
17.10.2017
14:01:55
ок
давай посмотрем на это с другой стороны
массив может хранить объекты рахного размера?
разного типа

Alexey
17.10.2017
14:02:38

Roman
17.10.2017
14:03:16
[]interface{}
но это ссылка же

Alexey
17.10.2017
14:03:32
[]interface{}
Это будет слайс объектов типа интерфейс{} :) В доке про рефлексию про это вроде говорится.

Roman
17.10.2017
14:05:21
суть типа в массиве - это возможность перемещаться, сдвигаясь на размер типа по массиву?

Aleksandr
17.10.2017
14:06:10
коллеги, как бы вы поэлегантнее из одного оффсета перевели в другой? именно оффсет
now := time.Now() // тут московская зона +0300
newOffset := "+0730"

Alexey
17.10.2017
14:07:09

Roman
17.10.2017
14:07:42
а как понять, сколько interface{} занимает?

Konstantins
17.10.2017
14:08:23
Не-а (ну мы про го говорим)
ну, в го может быть. В целом же сами объекты могут быть где угодно. Динамические массивы так чаще всего и делаются - массив адресов отдельно, объекты отдельно
тогда нет нужды выделять один длинный кусок памяти

Alexey
17.10.2017
14:09:23
И даже так: https://play.golang.org/p/gZkDkmkVCa

Илья
17.10.2017
14:13:22

Google

Aleksandr
17.10.2017
14:13:57

Илья
17.10.2017
14:15:38
эмм, направишваются 2 вопроса - 1. и правда, что за оффсет? 2. есть fixedzone в том же пакете

Konstantins
17.10.2017
14:16:52
у москвы же вроде изменилась таймзона

mstrVLT
17.10.2017
14:16:54
оупс )? фейл небольшой

Konstantins
17.10.2017
14:16:57
когда перестали переводить

Aleksandr
17.10.2017
14:17:24

Илья
17.10.2017
14:17:24
вообще, хранить время по Москве - не самая дальновидная идея :) сама по себе

Konstantins
17.10.2017
14:17:36

Admin
ERROR: S client not available

Konstantins
17.10.2017
14:17:55
хранишь по гринвичу и норм

Aleksandr
17.10.2017
14:18:14

Konstantins
17.10.2017
14:19:00

Vlad
17.10.2017
14:19:40
"поинтеры создают доп нагрузку на GC"
кто-то пояснит мне за эту цитату?

Kirill
17.10.2017
14:20:03
Лолшто?

Vlad
17.10.2017
14:20:24
читаю статью на хабре
могу скинуть линк

Илья
17.10.2017
14:20:32
давай

Vlad
17.10.2017
14:21:18
https://m.habrahabr.ru/post/325468/

Google

Илья
17.10.2017
14:21:36
https://m.habrahabr.ru/post/325468/
используя указатели, шанс улететь на хип выше, чем без оного, в статье написано некорректно и без объяснений, тк если переменная локальная, и не покидает скоупа, она все равно будет на стэке

Kirill
17.10.2017
14:25:29
"поинтеры создают доп нагрузку на GC"
может имеется ввиду что увеличивает на шаг действие гц на этапе маркировки объектов? хз, но помоему увеличение этапа gc когда stw возможно только если резко возрастает частотность создание неважно чего поинтеров или значений

Илья
17.10.2017
14:29:27
https://m.habrahabr.ru/post/325468/
см http://www.agardner.me/golang/garbage/collection/gc/escape/analysis/2015/10/18/go-escape-analysis.html и разбирайся :) там много весёлого и странного

Vlad
17.10.2017
14:32:01

Konstantins
17.10.2017
14:35:34
используя указатели, шанс улететь на хип выше, чем без оного, в статье написано некорректно и без объяснений, тк если переменная локальная, и не покидает скоупа, она все равно будет на стэке
не знаю, как в ГО, но в целом может быть иначе. Опять же, в стек может класться просто ссылка на объект, а объект класться в хип

Илья
17.10.2017
14:36:18
и вам советую почитать про escape analysis и про gc в Go, тогда будете знать как в ГО

nezorflame
17.10.2017
14:40:03
https://segment.com/blog/allocation-efficiency-in-high-performance-go-services/ тоже на эту тему

Alexey
17.10.2017
15:28:13
Здесь можно задать вопрос:
Новый проект на чем лучше фронтенд начинать на React.js или Vue.js ? (сайт средних размеров - создание турнирных сеток)
бек на го, естественно

Konstantins
17.10.2017
15:28:28
извини, пошутил
есть чат по жс

Alexey
17.10.2017
15:28:52
но там неадекваты, каждый свое болото хвалит

Konstantins
17.10.2017
15:29:45
после твоего вопроса вдруг стало интересно сколько Гоистов пишет фронтенд
не пописывает, а именно пишет)

Alexey
17.10.2017
15:31:10
если ты имеешь ввиду жс-фреймворки, по-моему - каждый второй

Konstantins
17.10.2017
15:31:28
ну не знаю

nezorflame
17.10.2017
15:31:35
ни одной строчки фронта за полтора года на Go не написал