Сериализация
Serialization.serializeФункция
serialize(stream::IO, value)
Записывает произвольное значение в поток в непрозрачном формате, так что его можно прочитать обратно с помощью deserialize. Прочитанное значение будет максимально идентично оригинальному. В общем случае этот процесс не будет работать, если чтение и запись выполняются разными версиями Julia или экземплярами Julia с разными системными образами. Ptr значения сериализуются как все нулевые битовые шаблоны (NULL).
Сначала в поток записывается идентифицирующий заголовок длиной 8 байт. Чтобы избежать записи заголовка, создайте Serializer и используйте его в качестве первого аргумента функции serialize. См. также Serialization.writeheader.
Serialization.deserializeФункция
deserialize(stream)
Считывает значение, записанное с помощью serialize. deserialize предполагает, что двоичные данные, считанные из stream корректны и были сериализованы совместимой реализацией serialize. Она разработана с целью простоты и производительности и не проверяет считанные данные. Неправильно сформированные данные могут привести к завершению процесса. Вызывающая сторона должна гарантировать целостность и корректность данных, считанных из stream.
Serialization.writeheaderФункция
Serialization.writeheader(s::AbstractSerializer)
Записывает идентифицирующий заголовок в указанный сериализатор. Заголовок состоит из 8 байтов следующим образом:
| Смещение | Описание |
|---|---|
| 0 | байт тега (0x37) |
| 1-2 | байты сигнатуры "JL" |
| 3 | версия протокола |
| 4 | биты 0-1: порядок байтов: 0 = little, 1 = big |
| 4 | биты 2-3: платформа: 0 = 32-битная, 1 = 64-битная |
| 5-7 | зарезервировано |
© 2009–2019 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.0.4/stdlib/Serialization/