@@ -248,29 +248,23 @@ static void Main(string[] args) | |||||
``` ini | ``` ini | ||||
BenchmarkDotNet=v0.11.5, OS=Windows 10.0.18362 | |||||
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18363 | |||||
Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores | Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores | ||||
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.8.4010.0 | |||||
Job-LGLQDK : .NET Core 2.2.7 (CoreCLR 4.6.28008.02, CoreFX 4.6.28008.03), 64bit RyuJIT | |||||
Job-ZHZJMS : .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), 64bit RyuJIT | |||||
.NET Core SDK=3.1.100 | |||||
[Host] : .NET Core 3.1.0 (CoreCLR 4.700.19.56402, CoreFX 4.700.19.56404), X64 RyuJIT | |||||
Job-RQJOPV : .NET Core 3.1.0 (CoreCLR 4.700.19.56402, CoreFX 4.700.19.56404), X64 RyuJIT | |||||
Platform=AnyCpu Server=False | |||||
Platform=AnyCpu Server=False Toolchain=.NET Core 3.1 | |||||
``` | ``` | ||||
| Method | Toolchain | N | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated | | |||||
|---------------------------------------- |-------------- |------- |-------------:|-------------:|-------------:|-----------:|------:|------:|-------------:| | |||||
| **JT809_0x9400_0x9401_Package_Deserialize** | **.NET Core 2.2** | **100** | **708.1 us** | **9.502 us** | **8.888 us** | **18.5547** | **-** | **-** | **118.75 KB** | | |||||
| JT809_0x9400_0x9401_Package_Serialize | .NET Core 2.2 | 100 | 579.5 us | 4.797 us | 4.487 us | 12.6953 | - | - | 83.59 KB | | |||||
| JT809_0x9400_0x9401_Package_Deserialize | .NET Core 3.0 | 100 | 625.4 us | 6.279 us | 5.874 us | 15.6250 | - | - | 100.79 KB | | |||||
| JT809_0x9400_0x9401_Package_Serialize | .NET Core 3.0 | 100 | 493.5 us | 6.747 us | 5.981 us | 12.6953 | - | - | 83.59 KB | | |||||
| **JT809_0x9400_0x9401_Package_Deserialize** | **.NET Core 2.2** | **10000** | **71,579.2 us** | **479.153 us** | **400.115 us** | **1857.1429** | **-** | **-** | **11875 KB** | | |||||
| JT809_0x9400_0x9401_Package_Serialize | .NET Core 2.2 | 10000 | 57,628.0 us | 1,132.986 us | 1,259.311 us | 1333.3333 | - | - | 8359.38 KB | | |||||
| JT809_0x9400_0x9401_Package_Deserialize | .NET Core 3.0 | 10000 | 62,621.4 us | 347.593 us | 308.132 us | 1625.0000 | - | - | 10078.74 KB | | |||||
| JT809_0x9400_0x9401_Package_Serialize | .NET Core 3.0 | 10000 | 50,368.3 us | 603.232 us | 564.264 us | 1300.0000 | - | - | 8359.38 KB | | |||||
| **JT809_0x9400_0x9401_Package_Deserialize** | **.NET Core 2.2** | **100000** | **699,234.2 us** | **4,387.105 us** | **3,889.054 us** | **19000.0000** | **-** | **-** | **118750 KB** | | |||||
| JT809_0x9400_0x9401_Package_Serialize | .NET Core 2.2 | 100000 | 553,963.3 us | 5,945.857 us | 5,561.758 us | 13000.0000 | - | - | 83593.75 KB | | |||||
| JT809_0x9400_0x9401_Package_Deserialize | .NET Core 3.0 | 100000 | 625,025.5 us | 2,921.895 us | 2,733.143 us | 16000.0000 | - | - | 100787.23 KB | | |||||
| JT809_0x9400_0x9401_Package_Serialize | .NET Core 3.0 | 100000 | 500,894.2 us | 2,459.516 us | 2,180.297 us | 13000.0000 | - | - | 83593.75 KB | | |||||
| Method | N | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated | | |||||
|---------------------------------------- |------- |-------------:|-------------:|------------:|-----------:|------:|------:|-------------:| | |||||
| **JT809_0x9400_0x9401_Package_Deserialize** | **100** | **629.9 us** | **11.09 us** | **9.83 us** | **15.6250** | **-** | **-** | **100.79 KB** | | |||||
| JT809_0x9400_0x9401_Package_Serialize | 100 | 501.0 us | 8.63 us | 8.07 us | 13.1836 | - | - | 83.59 KB | | |||||
| **JT809_0x9400_0x9401_Package_Deserialize** | **10000** | **63,018.0 us** | **954.14 us** | **845.82 us** | **1625.0000** | **-** | **-** | **10078.74 KB** | | |||||
| JT809_0x9400_0x9401_Package_Serialize | 10000 | 48,890.0 us | 1,107.12 us | 1,136.93 us | 1363.6364 | - | - | 8359.38 KB | | |||||
| **JT809_0x9400_0x9401_Package_Deserialize** | **100000** | **623,675.9 us** | **10,185.67 us** | **9,527.68 us** | **16000.0000** | **-** | **-** | **100787.23 KB** | | |||||
| JT809_0x9400_0x9401_Package_Serialize | 100000 | 486,690.2 us | 6,158.00 us | 5,458.90 us | 13000.0000 | - | - | 83595.03 KB | | |||||
## JT809协议消息对照表 | ## JT809协议消息对照表 | ||||
@@ -1,32 +0,0 @@ | |||||
5B | |||||
00 00 | |||||
00 5A 02 00 00 00 85 12 00 01 33 53 D5 01 00 00 00 00 00 27 0F D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 02 00 00 00 24 00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 32 00 34 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 00 00 43 BF | |||||
5D | |||||
5B -- 标识头 | |||||
00 00 00 5A -- Unit32_t 数据长度 | |||||
00 00 00 85 -- Unit32_t 报文序列号 a | |||||
12 00 -- Unit16_t 业务数据类型 | |||||
01 33 53 D5 -- Unit32_t 下级平台接入码,上级平台给下级平台分配唯一标识码 | |||||
01 00 00 -- BYTES 协议版本好标识 | |||||
00 -- BYTE 报文加密标识位 b: 0 表示报文不加密,1 表示报文加密 | |||||
00 00 27 0F -- Unit32_t 数据加密的密匙,长度为 4 个字节 | |||||
D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 -- 21 Octet String 车牌号 | |||||
01 -- 1 BYTE 车辆颜色,按照 JT/T415-2006 中5.4.12 的规定 | |||||
12 02 --2 Uint16_t 子业务类型标识 | |||||
00 00 00 24 -- 4 Uint32_t 后续数据长度 | |||||
-----********************************************** 数据部分********************************************----- | |||||
00 -- BYTE 该字段标识传输的定位信息是否使用国家测绘局批准的地图保密插件进行加密。加密标识:1-已加密,0-未加密。 | |||||
13 07 07 DC -- 4 BYTES 日月年(dmyy) | |||||
0F 0F 0F -- 3 BYTES 时分秒(hms) | |||||
07 EF 4D 80 --4 Uint32_t 经度,单位为 1*10^-6 度 | |||||
01 70 18 40 -- 4 Uint32_t 纬度,单位为 1*10^-6 度 | |||||
00 32 -- 2 Uint16_t 速度, | |||||
00 34 -- 2 Uint16_t 行驶记录速度 | |||||
00 00 00 96 -- 4 Uint32_t 车辆当前总里程数 | |||||
00 2D --2 Uint16_t 方向,0-359,单位为度(。) | |||||
00 2D --2 Uint16_t 海拔高度,单位为米(m) | |||||
00 00 00 03 -- 4 Uint32_t 车辆状态,二进制表示,B31B30B29。。。。。。B2B1B0.具体定义按照 JT/T808-2011 中表 17 的规定 | |||||
00 00 00 00 --4 Uint32_t 报警状态,二进制表示,0 标识正常,1 表示报警:B31B30B29 。。。。。。 B2B1B0. 具 体 定 义 按 照JT/T808-2011 中表 18 的规定 | |||||
43 BF -- 2 Unint16_t 数据 CRC 校验码 | |||||
5D -- 标识尾 |
@@ -2,11 +2,11 @@ | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<OutputType>Exe</OutputType> | <OutputType>Exe</OutputType> | ||||
<TargetFrameworks>netcoreapp2.2;net472;netcoreapp3.0;</TargetFrameworks> | |||||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="BenchmarkDotNet" Version="0.11.5" /> | |||||
<PackageReference Include="BenchmarkDotNet" Version="0.12.0" /> | |||||
<PackageReference Include="System.Buffers" Version="4.5.0" /> | <PackageReference Include="System.Buffers" Version="4.5.0" /> | ||||
<PackageReference Include="System.Memory" Version="4.5.3" /> | <PackageReference Include="System.Memory" Version="4.5.3" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -87,8 +87,7 @@ namespace JT809.Protocol.Benchmark | |||||
{ | { | ||||
public JT809SerializerContextConfig() | public JT809SerializerContextConfig() | ||||
{ | { | ||||
Add(Job.Default.WithGcServer(false).With(CsProjCoreToolchain.NetCoreApp22).With(Platform.AnyCpu)); | |||||
Add(Job.Default.WithGcServer(false).With(CsProjCoreToolchain.NetCoreApp30).With(Platform.AnyCpu)); | |||||
Add(Job.Default.WithGcServer(false).With(CsProjCoreToolchain.NetCoreApp31).With(Platform.AnyCpu)); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -1,7 +1,7 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | <Project Sdk="Microsoft.NET.Sdk"> | ||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||||
<IsPackable>false</IsPackable> | <IsPackable>false</IsPackable> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
@@ -11,8 +11,8 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" /> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||||
<PackageReference Include="xunit" Version="2.4.1" /> | <PackageReference Include="xunit" Version="2.4.1" /> | ||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | ||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
@@ -14,7 +14,7 @@ | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT809</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT809</PackageProjectUrl> | ||||
<license>https://github.com/SmallChi/JT809/blob/master/LICENSE</license> | <license>https://github.com/SmallChi/JT809/blob/master/LICENSE</license> | ||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild> | <GeneratePackageOnBuild>false</GeneratePackageOnBuild> | ||||
<Version>2.1.2</Version> | |||||
<Version>2.1.3</Version> | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
@@ -111,9 +111,9 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.CSharp" Version="4.6.0" /> | |||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.6.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0" /> | |||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> | |||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.7.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.0" /> | |||||
</ItemGroup> | </ItemGroup> | ||||