Сериализация
Обеспечивает сериализацию объектов Julia.
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–2024 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.10/stdlib/Serialization/