@proGO

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

Sign
15.05.2018
16:41:16
да

Vasily Romanov
15.05.2018
16:47:53
загрузил 10кк строк в массив, почему размер файла 300мб, а в памяти это дело аж 900 занимает
вангую-телепачу там изначалтно был пустой слайс и туда добавлялось аппендом слайс расширялся, копируяси во все больший размер, старые версии удалялись сборщиком мусора нл система память назад сразу не просила, поэтому неиспользуемую память процесс не вернул

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 прнудительно запустить?

Andrey
15.05.2018
16:58:11
runtime.GC()
блин... семён семёныч. точно. Спасибо

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
Кстати кто то знает как GC прнудительно запустить?
если речь идёт о дебагинге то советую вместо runtime.GC() использовать https://golang.org/pkg/runtime/debug/#FreeOSMemory

Andrey
15.05.2018
17:47:20
если речь идёт о дебагинге то советую вместо runtime.GC() использовать https://golang.org/pkg/runtime/debug/#FreeOSMemory
Я хотел бы в работающей проге когда я знаю что кусок кода потребляющий память закончен. Сделать очистку

не в дебаге

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: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
а go разберется сам, когда gc позвать
Пока он разберётся, другой программе может не хватить

Admin
ERROR: S client not available

Daniel
15.05.2018
18:13:30
мне надо из этого выдергивать некоторые позиции по названию бумаги
https://mholt.github.io/json-to-go/ все ненужное - закомментить

Roman
15.05.2018
18:13:46
зачем рефлект? вроде - это типичный unmarshal
насколько я понял он имеет ввиду создать структуру имея описание в JSON. Т.е. не анмаршалить в уже известную структуру а динамически создать тип

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, ибо эта функция постарается отдать максимум памяти, но это только для дебагинга в основном

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
Возможно я фразу вашу не так понял. Я подумал чт это работает только в дебаггинге
имеется ввиду что это функция пакета debug, т.е. явно не для продакшна

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

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

Daniel
15.05.2018
18:24:10
Мобилки и расбери
тогда надо не в gc играть, а выделять правильное количество памяти

Roman
15.05.2018
18:25:57
Вроде упоминалось что через 5-15 минут все таки отдаёт
да, но опять же не всю, но это не точно

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
а это адекватное поведение для языка или будут допиливать?

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}}

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