Сериализация
Serialization.serializeФункция
serialize(stream::IO, value)
Записывает произвольное значение в поток в непрозрачном формате, так что его можно будет прочитать обратно с помощью deserialize. Прочитанное значение будет максимально идентично исходному, но обратите внимание, что Ptr значения сериализуются как все нулевые битовые шаблоны (NULL).
Сначала в поток записывается 8-байтовый заголовок. Чтобы избежать записи заголовка, создайте Serializer и используйте его в качестве первого аргумента для serialize вместо этого. См. также Serialization.writeheader.
Формат данных может меняться в незначительных (1.x) выпусках Julia, но файлы, записанные предыдущими версиями 1.x, останутся читаемыми. Основное исключение из этого правила — когда определение типа в внешнем пакете изменяется. В таком случае может потребоваться указать явную совместимую версию затронутого пакета в вашей среде. Переименование функций, даже приватных, внутри пакетов также может привести к несовместимости существующих файлов. Анонимные функции требуют особого внимания: поскольку их имена генерируются автоматически, незначительные изменения кода могут привести к их переименованию. Сериализацию анонимных функций следует избегать в файлах, предназначенных для длительного хранения.
В некоторых случаях разрядность (32 или 64 бита) машин чтения и записи должна совпадать. В редких случаях также должно совпадать ОС или архитектура, например, при использовании пакетов, содержащих платформозависимый код.
serialize(filename::AbstractString, value)
Открывает файл и сериализует заданное значение в него.
Этот метод доступен начиная с Julia 1.1.
Serialization.deserializeФункция
deserialize(stream)
Читает значение, записанное функцией serialize. deserialize предполагает, что двоичные данные, считанные из stream , корректны и были сериализованы совместимой реализацией serialize. deserialize разработана для простоты и производительности, и поэтому не проверяет считанные данные. Некорректные данные могут привести к завершению процесса. Вызывающая сторона должна гарантировать целостность и правильность данных, считанных из stream.
deserialize(filename::AbstractString)
Открывает файл и десериализует его содержимое.
Этот метод доступен начиная с Julia 1.1.
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–2022 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.8/stdlib/Serialization/