Skip to content

Commit c2b6efe

Browse files
committed
Added MemoryPack
1 parent a1d3549 commit c2b6efe

File tree

5 files changed

+34
-6
lines changed

5 files changed

+34
-6
lines changed

BinaryBenchmark.MemoryPack.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using BenchmarkDotNet.Attributes;
2+
using MemoryPack;
3+
using SerializationBenchmarks.Models;
4+
5+
public partial class BinaryBenchmark
6+
{
7+
[Benchmark, BenchmarkCategory("Serialization", "Binary"), ArgumentsSource(nameof(GenerateDataSets))]
8+
public byte[] MemoryPack_Serialize(DataSet data)
9+
{
10+
return DataConvert_MemoryPack(data.Payload);
11+
}
12+
13+
[Benchmark, BenchmarkCategory("Deserialization", "Binary"), ArgumentsSource(nameof(GenerateDataSets))]
14+
public List<User> MemoryPack_Deserialize(DataSet data)
15+
{
16+
return MemoryPackSerializer.Deserialize<List<User>>(data.SerializedData.MemoryPack);
17+
}
18+
19+
private byte[] DataConvert_MemoryPack(List<User> users)
20+
{
21+
return MemoryPackSerializer.Serialize(users);
22+
}
23+
}

BinaryBenchmark.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public IEnumerable<DataSet> GenerateDataSets()
3838
GroBuf = DataConvert_GroBuf(users),
3939
Hyperion = DataConvert_Hyperion(users),
4040
MessagePack = DataConvert_MessagePack(users),
41+
MemoryPack = DataConvert_MemoryPack(users),
4142
MsgPack = DataConvert_MsgPack(users),
4243
ProtoBufNet = DataConvert_ProtoBufNet(users)
4344
}
@@ -62,5 +63,6 @@ public class SerializedData
6263
public byte[] MessagePack { get; set; }
6364
public byte[] MsgPack { get; set; }
6465
public byte[] ProtoBufNet { get; set; }
66+
public byte[] MemoryPack { get; set; }
6567
}
6668
}

Models/Order.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
using MessagePack;
1+
using MemoryPack;
2+
using MessagePack;
23
using ProtoBuf;
34

45
namespace SerializationBenchmarks.Models;
56

6-
[MessagePackObject, ProtoContract]
7-
public class Order
7+
[MessagePackObject, ProtoContract, MemoryPackable]
8+
public partial class Order
89
{
910
[Key(0), ProtoMember(1)]
1011
public int OrderId { get; set; }

Models/User.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
using MessagePack;
1+
using MemoryPack;
2+
using MessagePack;
23
using ProtoBuf;
34

45
namespace SerializationBenchmarks.Models;
56

6-
[MessagePackObject, ProtoContract]
7-
public class User
7+
[MessagePackObject, ProtoContract, MemoryPackable]
8+
public partial class User
89
{
910
[Key(0), ProtoMember(1)]
1011
public int Id { get; set; }

SerializationBenchmarks.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<PackageReference Include="GroBuf" Version="1.8.1" />
2323
<PackageReference Include="Hyperion" Version="0.12.2" />
2424
<PackageReference Include="Jil" Version="2.17.0" />
25+
<PackageReference Include="MemoryPack" Version="1.9.13" />
2526
<PackageReference Include="MessagePack" Version="2.4.59" />
2627
<PackageReference Include="MongoDB.Bson" Version="2.19.0" />
2728
<PackageReference Include="MsgPack.Cli" Version="1.0.1" />

0 commit comments

Comments
 (0)