×

# C# 数字类型序列化

hqy hqy 发表于2026-04-08 17:06:50 浏览7 评论0

抢沙发发表评论

# C# 数字类型序列化

在网络编程中,需要对数据进行序列化发送,那么如何能更快的序列化呢,数字部分

测试

C#
[MemoryDiagnoser]public partial class Test{    [GlobalSetup]    public void Startup()    {    }    byte[] arr = new byte[8];    uint num4 = 1;    ulong num8 = 1;    [Benchmark]    public void ArrayCopy4()    {        for (int i = 0; i < 100; i++)            BitConverter.GetBytes(num4).CopyTo(arr, 0);    }    [Benchmark]    public void ArrayCopy8()    {        for (int i = 0; i < 100; i++)            BitConverter.GetBytes(num8).CopyTo(arr, 0);    }    [Benchmark]    public void SpanCopy4()    {        for (int i = 0; i < 100; i++)            BitConverter.GetBytes(num4).AsSpan().CopyTo(arr);    }    [Benchmark]    public void SpanCopy8()    {        for (int i = 0; i < 100; i++)            BitConverter.GetBytes(num8).AsSpan().CopyTo(arr);    }    [Benchmark]    public unsafe void UnSafeSpanCopy4()    {        for (int i = 0; i < 100; i++)        {            ref uint v = ref num4;            fixed (void* p = &v)            {                new Span<byte>(p, 4).CopyTo(arr);            }        }    }    [Benchmark]    public unsafe void UnSafeSpanCopy8()    {        for (int i = 0; i < 100; i++)        {            ref ulong v = ref num8;            fixed (void* p = &v)            {                new Span<byte>(p, 8).CopyTo(arr);            }        }    }}

基准

C#
BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3208/22H2/2022Update)AMD Ryzen 3 2200G with Radeon Vega Graphics, 1 CPU, 4 logical and 4 physical cores.NET SDK=7.0.100  [Host]     : .NET 7.0.0 (7.0.22.51805), X64 RyuJIT AVX2 [AttachedDebugger]  DefaultJob : .NET 7.0.0 (7.0.22.51805), X64 RyuJIT AVX2|          Method |       Mean |    Error |    StdDev |     Median |   Gen0 | Allocated ||---------------- |-----------:|---------:|----------:|-----------:|-------:|----------:||      ArrayCopy4 | 1,199.7 ns | 22.81 ns |  20.22 ns | 1,198.6 ns | 1.5297 |    3200 B ||      ArrayCopy8 | 1,289.7 ns | 48.98 ns | 144.43 ns | 1,249.4 ns | 1.5297 |    3200 B ||       SpanCopy4 | 1,090.2 ns | 21.26 ns |  30.49 ns | 1,085.3 ns | 1.5297 |    3200 B ||       SpanCopy8 | 1,098.9 ns | 21.99 ns |  39.66 ns | 1,100.2 ns | 1.5297 |    3200 B || UnSafeSpanCopy4 |   461.0 ns |  9.14 ns |   8.55 ns |   463.0 ns |      - |         - || UnSafeSpanCopy8 |   462.4 ns |  8.99 ns |  11.04 ns |   457.6 ns |      - |         - |


打赏

本文链接:https://www.kinber.cn/post/6423.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客