Serialization

Julia 객체의 직렬화를 제공합니다.

Serialization.serializeFunction
serialize(stream::IO, value)

임의의 값을 불투명한 형식으로 스트림에 기록하여 deserialize로 다시 읽을 수 있도록 합니다. 읽어들인 값은 원본과 최대한 동일하지만, Ptr 값은 모두 0 비트 패턴(NULL)으로 직렬화된다는 점에 유의하십시오.

먼저 8바이트 식별 헤더가 스트림에 기록됩니다. 헤더를 작성하지 않으려면 Serializer를 구성하고 이를 serialize의 첫 번째 인수로 사용하십시오. Serialization.writeheader도 참조하십시오.

데이터 형식은 사소한 (1.x) Julia 릴리스에서 변경될 수 있지만, 이전 1.x 버전에서 작성된 파일은 여전히 읽을 수 있습니다. 주요 예외는 외부 패키지의 유형 정의가 변경될 때입니다. 그런 경우, 영향을 받는 패키지의 호환 가능한 버전을 환경에 명시해야 할 수 있습니다. 패키지 내에서 함수 이름을 바꾸는 것, 심지어 비공식 함수도 기존 파일의 동기화를 방해할 수 있습니다. 익명 함수는 특별한 주의가 필요합니다: 이름이 자동으로 생성되기 때문에 사소한 코드 변경이 이름 변경을 초래할 수 있습니다. 장기 저장을 위한 파일에서는 익명 함수를 직렬화하는 것을 피해야 합니다.

일부 경우, 읽기 및 쓰기 기계의 단어 크기(32비트 또는 64비트)가 일치해야 합니다. 더 드문 경우에는 OS 또는 아키텍처도 일치해야 하며, 예를 들어 플랫폼 종속 코드를 포함하는 패키지를 사용할 때 그렇습니다.

source
serialize(filename::AbstractString, value)

파일을 열고 주어진 값을 직렬화합니다.

Julia 1.1

이 메서드는 Julia 1.1부터 사용할 수 있습니다.

source
Serialization.deserializeFunction
deserialize(stream)

serialize로 작성된 값을 읽습니다. deserializestream에서 읽은 이진 데이터가 올바르며 serialize의 호환 가능한 구현에 의해 직렬화되었다고 가정합니다. deserialize는 단순성과 성능을 위해 설계되었으며, 읽은 데이터의 유효성을 검사하지 않습니다. 잘못된 데이터는 프로세스 종료를 초래할 수 있습니다. 호출자는 stream에서 읽은 데이터의 무결성과 정확성을 보장해야 합니다.

source
deserialize(filename::AbstractString)

파일을 열고 그 내용을 역직렬화합니다.

Julia 1.1

이 메서드는 Julia 1.1부터 사용할 수 있습니다.

source
Serialization.writeheaderFunction
Serialization.writeheader(s::AbstractSerializer)

지정된 직렬화기에 식별 헤더를 작성합니다. 헤더는 다음과 같이 8바이트로 구성됩니다:

오프셋설명
0태그 바이트 (0x37)
1-2서명 바이트 "JL"
3프로토콜 버전
4비트 0-1: 엔디안: 0 = 리틀, 1 = 빅
4비트 2-3: 플랫폼: 0 = 32비트, 1 = 64비트
5-7예약됨
source