1.替换了KCP为C#版本 2.KCP增加了Memery<T>支持。 3.框架增加了对Memery<T>的支持,服务器网络消息采用Memery<T>,性能得大幅度的提升 4.优化了消息调度执行逻辑

1.替换了KCP为C#版本
2.KCP增加了Memery<T>支持。
3.框架增加了对Memery<T>的支持,服务器网络消息采用Memery<T>,性能得大幅度的提升
4.优化了消息调度执行逻辑
This commit is contained in:
ALEXTANG
2023-07-23 00:25:47 +08:00
parent c96d20a89a
commit 35d2012546
67 changed files with 2447 additions and 1025 deletions

View File

@@ -95,11 +95,54 @@ public sealed class MongoHelper : Singleton<MongoHelper>
{
return BsonSerializer.Deserialize(str, type);
}
public object Deserialize(Span<byte> span, Type type)
{
using var stream = MemoryStreamHelper.GetRecyclableMemoryStream();
stream.Write(span);
stream.Seek(0, SeekOrigin.Begin);
return BsonSerializer.Deserialize(stream, type);
}
public object Deserialize(Memory<byte> memory, Type type)
{
using var stream = MemoryStreamHelper.GetRecyclableMemoryStream();
stream.Write(memory.Span);
stream.Seek(0, SeekOrigin.Begin);
return BsonSerializer.Deserialize(stream, type);
}
public object Deserialize<T>(Span<byte> span)
{
using var stream = MemoryStreamHelper.GetRecyclableMemoryStream();
stream.Write(span);
stream.Seek(0, SeekOrigin.Begin);
return BsonSerializer.Deserialize<T>(stream);
}
public object Deserialize<T>(Memory<byte> memory)
{
using var stream = MemoryStreamHelper.GetRecyclableMemoryStream();
stream.Seek(0, SeekOrigin.Begin);
return BsonSerializer.Deserialize<T>(stream);
}
public T Deserialize<T>(byte[] bytes)
{
return BsonSerializer.Deserialize<T>(bytes);
}
public void SerializeTo<T>(T t, Memory<byte> memory)
{
using var memoryStream = new MemoryStream();
using (var writer = new BsonBinaryWriter(memoryStream, BsonBinaryWriterSettings.Defaults))
{
BsonSerializer.Serialize(writer, typeof(T), t);
}
memoryStream.GetBuffer().AsMemory().CopyTo(memory);
}
public object Deserialize(byte[] bytes, Type type)
{