
Denis
22.01.2017
20:18:06
Вот это уровень)

Kirill
22.01.2017
20:18:38

kuznetsovin
22.01.2017
20:21:10
Насколько я помню copy может память поджирать
Там есть какой-то ньюанс но вот не помню какой

Google

Subbotin
22.01.2017
20:21:53
счас попробую просто по индексам приравнять. мне не сложно

One
22.01.2017
20:22:23
народ, посоветуйте шонить по го паттернам
я за него только взялся, синтакис вроде несложный

Denis
22.01.2017
20:23:34
All keys
Capacity установлен ?

Subbotin
22.01.2017
20:24:36
но все равно много

Denis
22.01.2017
20:24:59
А не , в коде у тебя динамика
Он автоматом запасает память при аппенде
+ 1/3 сверху
Или что-то вроде того

kuznetsovin
22.01.2017
20:25:57
Denis кстати прав

Denis
22.01.2017
20:26:10
Попробуй с конечным капасити

Google

Denis
22.01.2017
20:26:14
И без аппнда
А по индексу
Вставлять значения

Subbotin
22.01.2017
20:26:46
да. капасити сильно больше length

Kirill
22.01.2017
20:26:48
+ 1/3 сверху
вообще будет ресайз до cap == следующее простое число

Denis
22.01.2017
20:27:22
Там у них в коде формула интересная

Subbotin
22.01.2017
20:28:14
проблема в том что заранее сложно прикинуть, но счас попробую захардкодить для теста

Richard
22.01.2017
20:29:07
@Holoview Привет! Советовать не могу, но есть такая ссылка https://github.com/AlexanderGrom/go-patterns

One
22.01.2017
20:30:50

Richard
22.01.2017
20:31:11
@Holoview Принято :)

Subbotin
22.01.2017
20:31:13

Denis
22.01.2017
20:32:06
Он автоматом запасает память при аппенде
Можно исходники гошки глянуть
Так понятнее станет
Запасает чтобы каждый раз не просить систему за память

Subbotin
22.01.2017
20:33:55
это я понял уже.

Kirill
22.01.2017
20:38:26
факт, о котором не задумываешься, пока тебе не скажут: а ведь в коде определения append() используется append()

Denis
22.01.2017
20:43:32
Скинь сэмпл
Может там подвох:)

Roman
22.01.2017
20:48:52

Google

Kirill
22.01.2017
20:49:38

Roman
22.01.2017
20:51:40
На задаче буфера в памяти на 1 гбайт. Что то типа кольцевого буфера

Kirill
22.01.2017
20:55:18
ну, ты же ресайзить его, получается, не будешь. а значит он должен быть практически такой же.

Roman
22.01.2017
20:56:35
Почему не буду? Если на массивах то делать придется буфера и управлять ими, а если сплайсы - оно типо само

Kirill
22.01.2017
20:57:28
ну, если будешь ресайзить — то на время ресайза будет просадка.
https://github.com/golang/go/blob/master/src/runtime/slice.go#L82

Subbotin
22.01.2017
20:58:42

One
22.01.2017
21:01:11
переменная чтоль размером была не байт?

Roman
22.01.2017
21:02:02

Kirill
22.01.2017
21:02:20

Roman
22.01.2017
21:02:27
Был глупый вопрос - надо делать как проще, потом запускать профайл
Давай лучше спрошу твой любимый вопрос

Roman
22.01.2017
21:04:20
Если делать многопоточность - наколько будет проседать производительность с потокобезопасными структурами - map, slise, arrays ?

Kirill
22.01.2017
21:05:00
а смотря на каком уровне потокобезопасность обеспечишь
если рантайм поправишь — можно сделать без проседаний

Roman
22.01.2017
21:05:58
все стандартно

Kirill
22.01.2017
21:06:19

Denis
22.01.2017
21:07:00
Где править?

Roman
22.01.2017
21:07:00

Kirill
22.01.2017
21:07:26

Google

Denis
22.01.2017
21:08:00
Это совместимо с обычным го?

Kirill
22.01.2017
21:08:18

Roman
22.01.2017
21:08:45

Kirill
22.01.2017
21:08:47

Roman
22.01.2017
21:08:51
Боже
Зачем вам локи ?
Ну кольцо же

Kirill
22.01.2017
21:09:20
ты упустил изменение темы

Roman
22.01.2017
21:09:26

Admin
ERROR: S client not available

Denis
22.01.2017
21:09:39
Мне интересен патч в оф го репу
Они их уже принимают

Kirill
22.01.2017
21:09:51
https://github.com/golang/go/issues/17043

Denis
22.01.2017
21:14:03
Ответ конечно интересный
Жду форк)

Kirill
22.01.2017
21:15:01
вернее — тогда я стал планировать вот это всё

Roman
22.01.2017
21:15:38
We will not be supporting concurrent write+write or read+write map updates in the standard library, in any package.
We will not support them in our house,
We will not support them with your mouse.
We will not support them here or there,
We will not support them anywhere.
We kinda support them, in an atomic.Value box,
We will not support them in Firefox.
We will not support them in a car, ... (please, no unsafe in automotive systems..)

Google

Roman
22.01.2017
21:16:01
Я вдохновлен!

Denis
22.01.2017
21:16:10
Реп
There anywhere
Box Firefox
Норм же

Kirill
22.01.2017
21:17:18
Реп
я это всегда читал с выражением, как сверх серьезный стих

Roman
22.01.2017
21:17:37
Может кто на бит положить?

Quet
22.01.2017
21:17:43
норм ответ, посмеялся когда встал его )

Kirill
22.01.2017
21:18:06

Denis
22.01.2017
21:18:37
Я тогда танцор
Ну в смысле серьезно ?

Roman
22.01.2017
21:19:56
А я пиво люблю. Могу прийти на ваше выступление и покричать :)

Kirill
22.01.2017
21:20:22

Roman
22.01.2017
21:21:11
Так на чем мы остановились? Чтение безопасно для всех структур? Что то типа этого написано было в issue.

Kirill
22.01.2017
21:22:50
для этого и приходится rwlock таскать
это и раздражает в Go

Quet
22.01.2017
21:30:01
да нормальный tradeoff )

Kirill
22.01.2017
21:30:27
не нормальный

Roman
22.01.2017
21:32:08
Кирилл, эта проблема только для мапов или всех структур в Го?

Kirill
22.01.2017
21:32:40
по структурам не помню. вроде как со структурами такой фигни нет.

Daniel
22.01.2017
21:59:08
это и раздражает в Go
первая версия явы вышла с полностью сихронизированными (замутексованными) структурами данных. HashTable, Array, вот это вот все
уже к версии 1.2 им пришлось сделать параллельные структуры, без мутексов. HashMap, ArrayList, вот это вот все.
потому. что программер все же лучше знает, когда надо делать lock, а когда сойдет и так.