
Sign
15.05.2018
16:40:02
загрузил 10кк строк в массив, почему размер файла 300мб, а в памяти это дело аж 900 занимает

Cenator
15.05.2018
16:41:13

Sign
15.05.2018
16:41:16
да

Vasily Romanov
15.05.2018
16:47:53

Google

Vasily Romanov
15.05.2018
16:48:31
и если посмотреть на используемвй хип - там будут те самые 300 мегов

Sign
15.05.2018
16:49:25
https://paste.ofcode.org/T9sDVA5QS46eb64TKmqLFb вот фнкция чтения
хех, я смотрел видос на ютубе, где вы читали лекцию и говорили про этот момент как раз)) Вроде тут его нету

Vasily Romanov
15.05.2018
16:50:58
на 13-й строчке он
и на 1й
где вы слайс создаете
в слай сппендиься постояннл

Sign
15.05.2018
16:52:18
ну да, только проблема в том, что файл может быть и 1кк и 100кк, я не могу заранее указать размер т.к просто не знаю его

Vasily Romanov
15.05.2018
16:52:31
попробуйте создать его преалоцированным на нужный размер, хотя бы апрксимированно по размеру файла

Artem
15.05.2018
16:52:32
Гошка оперативку в том числе не сразу освобождает, а держит для своих нужд

Vasily Romanov
15.05.2018
16:53:00
ну или живите с этим)
если не частая операция

Sign
15.05.2018
16:53:21
единоразавая

Google

Sign
15.05.2018
16:53:28
но печально всёровно :(

The
15.05.2018
16:55:06
а почему нельзя расширять по 10 000 строк например?

Andrey
15.05.2018
16:55:20
но печально всёровно :(
ничгео печального. GC начинает работать только когда прога занимает опредённые обьем памяти. Сколько не помню. Где то было видео или статья по этой теме

Sign
15.05.2018
16:56:07
хм, а что если сначала посчитать скок там строк, а потом уже создать слайс под это

Andrey
15.05.2018
16:56:55
Кстати кто то знает как GC прнудительно запустить?

John
15.05.2018
16:57:44

Andrey
15.05.2018
16:58:11

Cenator
15.05.2018
17:18:07

?
15.05.2018
17:18:48
?

[Anonymous]
15.05.2018
17:28:47
Даров.

Roman
15.05.2018
17:45:34

Andrey
15.05.2018
17:47:20
не в дебаге

Roman
15.05.2018
17:48:35

Andrey
15.05.2018
17:49:01

Daniel
15.05.2018
17:52:43
а я думаю, что нет
кому, кроме go эта память может понадобиться?
а go разберется сам, когда gc позвать

Alexei
15.05.2018
17:56:57
aerospike )))

Daniel
15.05.2018
17:57:02
:)

Google

Daniel
15.05.2018
18:01:12
да, и failovered

Alexei
15.05.2018
18:01:23
не, по TTL, обычно
там есть запись на диск, но, по слухам в opensource-версии она кривая, поэтому да, если кластеры разом упадут, то все накроется
но я еще ни разу такого не видел )))

Daniel
15.05.2018
18:03:39
прямая она там вполне
и от платной версии не отличается

Alexei
15.05.2018
18:04:16

Daniel
15.05.2018
18:04:37
я весь 2016 в него играл, с тестами надежности и прочим
все там ок

Alexei
15.05.2018
18:04:58
это клево, спасибо, буду иметь ввиду

Daniel
15.05.2018
18:05:19
собственно, у меня там было 2 неймспейса

Alexei
15.05.2018
18:05:29
может тот, кто слухи пускал имел кривые девайсы не из плеч ))))

Daniel
15.05.2018
18:05:41
один с данными в памяти и синхронизацией на диск
и второй с данными на диске
оба работали хорошо

Alexei
15.05.2018
18:06:47
у нас "кривость" была признана примерно на 6 млн записей в кейспейс с 5 нодами
надо самому поковырять

Daniel
15.05.2018
18:07:33
5 нод, 20М записей

Alexei
15.05.2018
18:08:24
ну здорово, тогда область применения спайка может расшириться у нас в конторе )

Roman
15.05.2018
18:11:45
в Go можно из json сделать struct если сам json описывает поля структуры?

Google

Daniel
15.05.2018
18:12:02
вопрос не ясен

Roman
15.05.2018
18:12:08

Roman
15.05.2018
18:12:36
ну вот есть такая структура - для примера http://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQTF/securities.json

Daniel
15.05.2018
18:12:37
зачем рефлект? вроде - это типичный unmarshal

Roman
15.05.2018
18:12:58
мне надо из этого выдергивать некоторые позиции по названию бумаги

Andrey
15.05.2018
18:13:01

Admin
ERROR: S client not available

Daniel
15.05.2018
18:13:30

Roman
15.05.2018
18:13:46

Roman
15.05.2018
18:14:01
это я видел и использую .... благодарю

Daniel
15.05.2018
18:14:11
в go нельзя динамически создать тип!

Roman
15.05.2018
18:15:53
Пока он разберётся, другой программе может не хватить
тогда я должен вас огорчить. runtime.GC() не отдаст память системе, Go в этом плане очень жадный и не отдаёт по возможности память чтоб оптимизировать новые allocation'ы.
Поэтому я собственно и предложил debug.FreeOSMemory, ибо эта функция постарается отдать максимум памяти, но это только для дебагинга в основном

Andrey
15.05.2018
18:16:46

Roman
15.05.2018
18:17:12

Daniel
15.05.2018
18:17:20

Andrey
15.05.2018
18:17:38
Нищебродство :)

Roman
15.05.2018
18:23:23

Andrey
15.05.2018
18:23:45
Ок. В любом случае спасибо за информацию

Google

Roman
15.05.2018
18:23:53
если острой надобности нет восвобождать память то лучше не восвобождать вручную

Daniel
15.05.2018
18:24:10

Artem
15.05.2018
18:25:09

Roman
15.05.2018
18:25:57

Dmitri
15.05.2018
18:50:15
Кто-нибудь может, пожалуйста, пояснить почему нельзя делать так
msg.(tgbotapi.VideoConfig).Caption = p.Message.Caption
cannot assign to msg.("gopkg.in/telegram-bot-api.v4".VideoConfig).Caption

Daniel
15.05.2018
18:51:02
не хочет без промежуточной переменной
хочет копирование осуществить

Dmitri
15.05.2018
18:51:54
а это адекватное поведение для языка или будут допиливать?

Pawel
15.05.2018
18:51:58

Daniel
15.05.2018
18:52:10

Dmitri
15.05.2018
18:52:40

Daniel
15.05.2018
18:52:51
ну - неудобно, да
но всем плевать

Andrey
15.05.2018
18:54:44
Подскажите люди добрые как в темплэйте взять параметр выше уровнем если я в цикле? Честно гуглил прежде чем задать вопрос.
{{range .Cmd}}
// {{.Comment}}
{{ .Time}} Time находися в структуре выше
{{end}}

The
15.05.2018
18:55:06
$ - корень