Serialization
Proporciona serialización de objetos de Julia.
Serialization.serialize
— Functionserialize(stream::IO, value)
Escribe un valor arbitrario en un flujo en un formato opaco, de modo que se pueda leer de nuevo con deserialize
. El valor leído será lo más idéntico posible al original, pero ten en cuenta que los valores Ptr
se serializan como patrones de bits de cero (NULL
).
Se escribe primero un encabezado identificador de 8 bytes en el flujo. Para evitar escribir el encabezado, construye un Serializer
y úsalo como el primer argumento de serialize
. Consulta también Serialization.writeheader
.
El formato de datos puede cambiar en versiones menores (1.x) de Julia, pero los archivos escritos por versiones anteriores de 1.x seguirán siendo legibles. La principal excepción a esto es cuando la definición de un tipo en un paquete externo cambia. Si eso ocurre, puede ser necesario especificar una versión compatible explícita del paquete afectado en tu entorno. Renombrar funciones, incluso funciones privadas, dentro de los paquetes también puede desincronizar archivos existentes. Las funciones anónimas requieren un cuidado especial: debido a que sus nombres se generan automáticamente, cambios menores en el código pueden hacer que se renombren. Se debe evitar la serialización de funciones anónimas en archivos destinados a almacenamiento a largo plazo.
En algunos casos, el tamaño de palabra (32 o 64 bits) de las máquinas de lectura y escritura debe coincidir. En casos más raros, el sistema operativo o la arquitectura también deben coincidir, por ejemplo, al usar paquetes que contienen código dependiente de la plataforma.
serialize(filename::AbstractString, value)
Abre un archivo y serializa el valor dado en él.
Este método está disponible desde Julia 1.1.
Serialization.deserialize
— Functiondeserialize(stream)
Lee un valor escrito por serialize
. deserialize
asume que los datos binarios leídos de stream
son correctos y han sido serializados por una implementación compatible de serialize
. deserialize
está diseñado para simplicidad y rendimiento, por lo que no valida los datos leídos. Los datos malformados pueden resultar en la terminación del proceso. El llamador debe asegurar la integridad y corrección de los datos leídos de stream
.
deserialize(filename::AbstractString)
Abre un archivo y deserializa su contenido.
Este método está disponible a partir de Julia 1.1.
Serialization.writeheader
— FunctionSerialization.writeheader(s::AbstractSerializer)
Escribe un encabezado identificador para el serializador especificado. El encabezado consiste en 8 bytes de la siguiente manera:
Desplazamiento | Descripción |
---|---|
0 | byte de etiqueta (0x37) |
1-2 | bytes de firma "JL" |
3 | versión del protocolo |
4 | bits 0-1: orden de bytes: 0 = poco, 1 = grande |
4 | bits 2-3: plataforma: 0 = 32 bits, 1 = 64 bits |
5-7 | reservado |