Size: a a a

2020 August 18

DP

Daniel Podolsky in Go-go!
Евгений Омельченко
Не-не, есть ещё поле есть, но содержит null. Дефолтных значений так-то несколько :)
а как сделать пустое, но не null? в json, я имею в виду
источник

ЕО

Евгений Омельченко... in Go-go!
А, всё, я понял, неправильно тебя распарсил
источник

ЕО

Евгений Омельченко... in Go-go!
Кстати, я ожидал, что два указателя помогут, но оказалось, что нет
источник

CF

Captain Flint in Go-go!
дратути. подскажите как правильно поступить.

у меня есть порядка миллиона объектов, которые я пишу в xml батчами по 3к. следом нужно сделать такое же еще два раза. т.е. по итогу я получу около 3 млн хмл файлов. мне нужно их смержить. некоторые определнные поля нужно будет взять из всех трех типов файлов и создать один.

вопрос. как то можно писать структуру в файл (те самые три миллиона объектов как темповые файлы засейвить, а потом их уже мержить и формировать итоговый хмл)? какойнить бинарник может? чтобы никаких маршалингов\анмаршалингов, чтобы максимально производительно было
источник

DP

Daniel Podolsky in Go-go!
коллега, вопрос не ясен
источник

CF

Captain Flint in Go-go!
блин, как бы сформулировать, ща перефразирую
источник

DP

Daniel Podolsky in Go-go!
вот у вас 3 миллиона объектов

какого размера один объект?
источник

CF

Captain Flint in Go-go!
объект не знаю, итоговый хмл на один объект примерно 30кб
источник

DP

Daniel Podolsky in Go-go!
ну так это ключевой вопрос - можно ли держать все объекты в памяти разом
источник

DP

Daniel Podolsky in Go-go!
это с одной стороны
источник

CF

Captain Flint in Go-go!
вот поэтому думаю, что как тмп писть на диск, в памяти боюсь не влезет
источник

DP

Daniel Podolsky in Go-go!
“засейвить на диск” - это и есть маршалинг, без него никак.

можно взять быстрый маршалер. я бы взял msgpack
источник

DP

Daniel Podolsky in Go-go!
но и штатный json для мелких простых объектов очень хорошо себя показывает
источник

CF

Captain Flint in Go-go!
Daniel Podolsky
“засейвить на диск” - это и есть маршалинг, без него никак.

можно взять быстрый маршалер. я бы взял msgpack
спасибо, сейчас погуглю
источник

DP

Daniel Podolsky in Go-go!
ну и третий вариант - взять KV базу, типа badger, и писать в нее.

3М файлов - это уже серьезная нагрузка на FS, накладные расходы могут стать слишком большими.

правда, писать в badger - это тоже сериализация, так что msgpack она не отменяет
источник

ЕО

Евгений Омельченко... in Go-go!
Daniel Podolsky
“засейвить на диск” - это и есть маршалинг, без него никак.

можно взять быстрый маршалер. я бы взял msgpack
Можно заммапить файл в памяти и написать свой небольшой аллокатор
источник

ЕО

Евгений Омельченко... in Go-go!
Я бы никому такого не посоветовал, но можно
источник

DP

Daniel Podolsky in Go-go!
Евгений Омельченко
Можно заммапить файл в памяти и написать свой небольшой аллокатор
у меня с mmap файлами сугубо отрицательный опыт на любых языках, кроме однопоточных с ручным управлением памятью
источник

CF

Captain Flint in Go-go!
Евгений Омельченко
Можно заммапить файл в памяти и написать свой небольшой аллокатор
я так и думал
источник

DP

Daniel Podolsky in Go-go!
Captain Flint
я так и думал
тогда просто сделайте swap достаточного размера, и держите все в “памяти”
источник