Maxim
суть набодности записи в бинарь уже где-то предопределяет способы разделения
Maxim
ну например, по длине :)
Maxim
еще раз - надо сначала понять, что за данные пишутся и с какой целью,
потом уже искать оптимальные способы
Anonymous
Maxim
любые данные? разные по типам? много писать/мало?
Maxim
как считывать потом?
Maxim
то есть все сразу, выборочно по номеру и т.п.? - тут масса вариантов
Maxim
универсальный вариант - вписывать сначала длину, а потом байтовый блок
Maxim
Но, опять-таки, важно правильно определить исходную задачу - может оказаться, что данные вообще не надо или нельзя никуда записывать.
Maxim
Или, скажем, у них внутри указатели есть друг на друга - это отдельная история.
Anonymous
Писать много. Доставать структуру нужно из файла по её порядковому номеру.
Anonymous
Никаких ссылок и прочих сложностей. Только массив структур.
Maxim
Читать часто? Размеры структура разные?
Anonymous
Размеры разные. Читать часто.
Maxim
простейший случай - при записи строим индекс (смещения в файле), его пишет отдельно
Maxim
без индекса доступаться до произвольной структуры будет медленновато
Anonymous
Я сначала думал, что можно использовать какой-нибудь байт-разделитель. В вики даже нашёл, что это коды от 28 до 31. Но если в структуре самой есть такой байт, всё ломается.
Maxim
более того, надо будет сканировать весь файл, чтобы найти нужный кусок
Anonymous
Попробую вариант с
1. Индексами в начале файла
2. Перед данными записывать длину блока
Maxim
про "длина+байты" я уже писал, про индексы тоже
Maxim
чтобы писать индексы в начале файлв надо знать сколько их (максимально)
Anonymous
Хм, а не функции сдвинуть данные, чтобы дописать индекс в начало файла?
Maxim
Если тема будет интересна дальше, то рекомендую погуглить, как устроен protobuf - там масса интересных решений.
Anonymous
Vladimir
Pawel
Anonymous
Pawel
Vladimir
в плане почему ушли? деньги)
Скорее сложность поддержки. В отличии от опенсорсных вещей если что то случилось, то фиг что ты сделаешь
Evgenii
Вообще они называли две причины, деньги и проприетарщину. Но вроде акцент именно на деньгах был
Pawel
Кстати по поводу БД - рекомендую всем кто с ними работает ставить datagrip от jetbrains. Сбережёте много нервов
Anonymous
Лучше уж сразу идею) там тож есть плагин для баз
Vladimir
прожерливость и неповоротливость - не свойство жабы как языка
Vladimir
а свойство кода
Alex
сколько стереотипов
Alex
8 гб, и?
Alex
памяти она ест, эт да, но "неповоротливость" уже клевета
Anonymous
Alex
Vladimir
@az09_recommended с тем же успехом можно сказать, что раз продукты от InfluxData такие кривые и тормозные, то и Го как язык кривой и тормозной
Vladimir
и жрет памяти как слон еще
Vladimir
а потом обобщил на всю джаву)
Vladimir
да чушь же
Anonymous
Хм, а что есть продукты лучше jb?
Anonymous
А что не так то с ней?
Anonymous
У вас не скала ж. Все должно работать )
Anonymous
Alex
Илья
А от комодо кто-то пробовал их go ide?
Anonymous
Юзай идею
Anonymous
Там все эти плагины есть. Кроме крестов
Alex
95% фич специализированной иде включены как плагин к ванильной идее
Alex
ну я подключал так го, пол-года назад
Alex
гм, ну мотивация "сломать" понятна, но, если так, то это знатный минус в карму
Alex
а она уже и так котлином на дно загнана
Pawel
кто жалуется на тормознутость продуктов jetbrains, тот никогда не работал в вижуал студии
Pawel
вот там реально дикие тормоза на пустом месте. и ничего, работают люди, некоторые хвалят даже
Alexey 〒.
Видел, у кобо и 7.8 есть (Kobo Aura ONE)
Мерль
Alex
ладно, закрыли оффтоп
Anonymous
Pawel
тогда нужно отдельно записать в поток bytes.Buffer длину строки в байтах, потом содержимое строки в байтах, как-то так
Pawel
или не мучаться, и перегнать всё в жсон
Anonymous
Pawel
На самом деле это был вредный совет, жсон нельзя использовать, ибо на него нет ГОСТа. Поэтому для сериализации используй ТОЛЬКО asn.1 как это делаю я!
Мерль
Зачем нужны эти ваши jsonы и asnы если есть божественный протобуф
Anonymous
Anonymous