C# MemoryPack 은 .NET 시리얼라이저로 압축률이 좋고 빠른 성능을 가지고 있습니다.
위 그림을 보면 알수 있듯이 MessagePack 보다도 빠른 성능을 가지고 있습니다.
https://github.com/Cysharp/MemoryPack
사용방법은 간단합니다.
MemoryPack Nuget Package 를 설치합니다.
시리얼라이즈에 사용할 모델을 정의합니다.
[MemoryPackable] 을 선언하고 partial 로 정의 되어야 합니다.
[MemoryPackable]
public partial class Person
{
public string? Name { get; set; }
public int Age { get; set; }
}
사용은 아래와 같이 합니다.
var v = new Person { Age = 40, Name = "John" };
var bin = MemoryPackSerializer.Serialize(v);
var val = MemoryPackSerializer.Deserialize<Person>(bin);
Serialize 된 bin 데이터를 보면 아래와 같이 되어있습니다.
MemoryPack 은 C# 전용환경인 경우 선택하여 사용하는것이 좋습니다.
아래 내용은 hada.io 에 있는 소개 내용입니다.
MessagePack for C#의 최대 기여자인 Yoshifumi Kawai님이 CTO/CEO로 활동하고 있는 Cysharp의 오픈소스 프로젝트
초고성능을 지향하는 제로 인코딩 디자인 사용
C# 11과 증분 소스 생성기를 이용 동적 코드 생성 없음
최신 I/O API 지원
리플렉션 없는 비제네릭 API
기존 인스턴스로 역직렬화 가능
순환 참조 직렬화
TypeScript 코드 생성 및 ASP.NET Core Formatter 지원
.NET 소스 생성기를 통한 Unity (2021.3) IL2CPP 지원
NativeAOT 대응 완료(.NET NativeAOT의 버그로 인해 .NET 8에서 지원 예정)
C# DataSet ReadXML 오류 '경로에 잘못된 문자가 있습니다.' (0) | 2024.03.13 |
---|---|
C# DataTable은 Xml에서 스키마 유추를 지원하지 않습니다. (0) | 2024.03.13 |
C# Liquid Template 사용한 동적 쿼리 만들기 - Fluid (0) | 2024.03.05 |
C# ArvoConvert 사용하기 (0) | 2024.03.04 |
C# Indexer 사용하기 (0) | 2024.03.04 |