Комментарии 10
deleted
Было бы интересно узнать о структуре служебной информации, как происходит ее обновление при изменении файла, при переключении между ветками (когда может быть изменено множество файлов), и существует ли какая-то оптимизация при синхронизация данных в памяти и в файле (например записывать только данные из измененных файлов). Конечно если это не секретная информация.
Здесь есть информация (но, наверное, не вся): https://www.youtube.com/watch?v=HjXmFeOcx_A&list=PLaf6kEnNhxlpyAbdO_KfI-yMVtY5PCbPK&index=4
Исходники бизнес-проекта в DSL на несколько гигабайт? :о
P.S. просто мне как старперу, давно пееставшему пограммировать такое не умещается в голове. или это все следствие хранения в чем-то типа XML?
это все следствие хранения в чем-то типа XML
this
И дело не только в DSL - просто проекты действительно бывают очень большие.
Понятие "бизнес-проекта" сейчас для 1С достаточно большое - так как сейчас на 1С существуют очень крупные проекты.
Например, полнофункциональная ERP с очень широким спектром решаемых задач (в финальной части статьи про это написано - 1 Гб собственно кода, 8 000 экранных форм, 800 отчётов и т.д.).
Если бы это все было только на императивном языке, то объем кода был бы еще больше.
Классное решение с параллельным сжатием, спасибо, что поделились.
Правильно я понял, что запись на диск 1гб заднимает 25+ сек, то есть скорость примерно 40мб/сек, при этом запись не сжатых данных происходит в 10 раз быстрее?
Если скорость критична, почему бы не убрать сжатие вовсе или делать это в фоне?
И ещё, у вас windows, скорее всего ntfs, в нём обычно уже включено сжатие, скорее всего менее эффективное, но возможно достаточное.
Есть ощущение, что MemorySegment из Java 17+ должны помочь при работе с диском (нет ограничения на 2гб как в ByteBuffer). А то что библиотека что-то не поддерживает - это повод либо её доработать, либо написать свою, возможно с более узкозаточенным под ваши данные алгоритмом.
Ну и выглядит, что бороться надо в первую очередь с форматом хранения, а не сжимать избыток.
Быстро сжимаем, быстро пишем и читаем! На Java