@proGO

Страница 931 из 1674
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
да я понимаю, просто с го толко осваиваюсь, немного не понял момент, в статье про слайсы тоже не увидел
такое поведение же везде, просто оно скрыто. Какий-нибудь arrayList работает подобным образом

Илья
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
не, ну если взять обычный моссив объектов, объектам не обязательно лежать именно "в самом массиве"

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
нужна змея адресов этих объектов

на уровне языка не будет

а в памяти оно как угодно может быть

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
Не-а (ну мы про го говорим)
ну, в го может быть. В целом же сами объекты могут быть где угодно. Динамические массивы так чаще всего и делаются - массив адресов отдельно, объекты отдельно

тогда нет нужды выделять один длинный кусок памяти

Google
Aleksandr
17.10.2017
14:13:57
https://golang.org/pkg/time/#Time.In ?
0730 - это что за Location?

Илья
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
эмм, направишваются 2 вопроса - 1. и правда, что за оффсет? 2. есть fixedzone в том же пакете
1. Обычный оффсет - 7:30 от UTC выставлен клиентом. 2. Да, FixedZone нашел, но надо парсить оффсет в секунды. Вот спрашиваю, может что поэлегантнее можно придумать

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

Admin
ERROR: S client not available

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

Aleksandr
17.10.2017
14:18:14
у москвы же вроде изменилась таймзона
в моем мире зона у москвы осталась та же Europe/Moscow

вообще, хранить время по Москве - не самая дальновидная идея :) сама по себе
речь не идет о хранении, если внимательно присмотреться к вопросу

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
1. Обычный оффсет - 7:30 от UTC выставлен клиентом. 2. Да, FixedZone нашел, но надо парсить оффсет в секунды. Вот спрашиваю, может что поэлегантнее можно придумать
поэлегантнее, валидировать offset через TZ какой-нибудь (получать список и хранить в памяти), получить Name по оффсету, и делать In

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 и разбирайся :) там много весёлого и странного

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 ? (сайт средних размеров - создание турнирных сеток)

бек на го, естественно

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 не написал

Страница 931 из 1674