@@ -93,6 +93,87 @@ There may be a scenario you need to pass and return different types to and from
93
93
string polyline = encoding .Encode (coordinates );
94
94
```
95
95
96
+ ### Performance
97
+
98
+ #### Decode
99
+
100
+ ```
101
+
102
+ BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2894)
103
+ Apple Silicon, 4 CPU, 4 logical and 4 physical cores
104
+ .NET SDK 9.0.102
105
+ [Host] : .NET 9.0.1 (9.0.124.61010), Arm64 RyuJIT AdvSIMD
106
+ Job-CJKHIS : .NET 5.0.17 (5.0.1722.21314), Arm64 RyuJIT AdvSIMD
107
+ Job-GAHPKM : .NET 6.0.36 (6.0.3624.51421), Arm64 RyuJIT AdvSIMD
108
+ Job-KWIIGA : .NET 7.0.20 (7.0.2024.26716), Arm64 RyuJIT AdvSIMD
109
+ Job-ZMWUEM : .NET 8.0.12 (8.0.1224.60305), Arm64 RyuJIT AdvSIMD
110
+ Job-EQIHVN : .NET 9.0.1 (9.0.124.61010), Arm64 RyuJIT AdvSIMD
111
+
112
+
113
+ ```
114
+ | Method | Runtime | Mean | Error | StdDev | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
115
+ | ---------------------------------- | --------- | -----------:| ---------:| ---------:| ------:| --------:| -----:| -------:| -------:| ----------:| ------------:|
116
+ | ** Cloudikka_PolylineEncoding_Decode** | ** .NET 5.0** | ** 1,768.2 ns** | ** 7.36 ns** | ** 6.88 ns** | ** 1.29** | ** 0.01** | ** 3** | ** 0.4959** | ** 0.0019** | ** 3120 B** | ** 3.82** |
117
+ | ** PolylineDecoder_Decode** | ** .NET 5.0** | ** 1,367.1 ns** | ** 7.91 ns** | ** 6.61 ns** | ** 1.00** | ** 0.01** | ** 2** | ** 0.1297** | ** -** | ** 816 B** | ** 1.00** |
118
+ | ** Polyliner_Decode** | ** .NET 5.0** | ** 1,218.0 ns** | ** 3.79 ns** | ** 3.17 ns** | ** 0.89** | ** 0.00** | ** 1** | ** 0.5169** | ** 0.0057** | ** 3248 B** | ** 3.98** |
119
+ | | | | | | | | | | | | |
120
+ | ** Cloudikka_PolylineEncoding_Decode** | ** .NET 6.0** | ** 1,763.8 ns** | ** 4.51 ns** | ** 4.00 ns** | ** 1.38** | ** 0.01** | ** 3** | ** 0.4959** | ** 0.0019** | ** 3120 B** | ** 3.82** |
121
+ | ** PolylineDecoder_Decode** | ** .NET 6.0** | ** 1,277.5 ns** | ** 4.43 ns** | ** 4.14 ns** | ** 1.00** | ** 0.00** | ** 2** | ** 0.1297** | ** -** | ** 816 B** | ** 1.00** |
122
+ | ** Polyliner_Decode** | ** .NET 6.0** | ** 837.2 ns** | ** 2.49 ns** | ** 2.21 ns** | ** 0.66** | ** 0.00** | ** 1** | ** 0.5169** | ** 0.0057** | ** 3248 B** | ** 3.98** |
123
+ | | | | | | | | | | | | |
124
+ | ** Cloudikka_PolylineEncoding_Decode** | ** .NET 7.0** | ** 1,387.6 ns** | ** 24.18 ns** | ** 22.62 ns** | ** 1.12** | ** 0.02** | ** 2** | ** 1.4915** | ** -** | ** 3120 B** | ** 3.82** |
125
+ | ** PolylineDecoder_Decode** | ** .NET 7.0** | ** 1,237.5 ns** | ** 3.05 ns** | ** 2.86 ns** | ** 1.00** | ** 0.00** | ** 1** | ** 0.3891** | ** -** | ** 816 B** | ** 1.00** |
126
+ | ** Polyliner_Decode** | ** .NET 7.0** | ** 1,230.6 ns** | ** 2.08 ns** | ** 1.84 ns** | ** 0.99** | ** 0.00** | ** 1** | ** 1.5526** | ** -** | ** 3248 B** | ** 3.98** |
127
+ | | | | | | | | | | | | |
128
+ | ** Cloudikka_PolylineEncoding_Decode** | ** .NET 8.0** | ** 766.0 ns** | ** 3.39 ns** | ** 3.17 ns** | ** 1.49** | ** 0.01** | ** 3** | ** 1.4915** | ** -** | ** 3120 B** | ** 3.82** |
129
+ | ** PolylineDecoder_Decode** | ** .NET 8.0** | ** 513.9 ns** | ** 1.21 ns** | ** 1.14 ns** | ** 1.00** | ** 0.00** | ** 1** | ** 0.3901** | ** -** | ** 816 B** | ** 1.00** |
130
+ | ** Polyliner_Decode** | ** .NET 8.0** | ** 704.4 ns** | ** 1.38 ns** | ** 1.29 ns** | ** 1.37** | ** 0.00** | ** 2** | ** 1.5526** | ** -** | ** 3248 B** | ** 3.98** |
131
+ | | | | | | | | | | | | |
132
+ | ** Cloudikka_PolylineEncoding_Decode** | ** .NET 9.0** | ** 782.5 ns** | ** 1.50 ns** | ** 1.33 ns** | ** 1.57** | ** 0.00** | ** 3** | ** 1.4915** | ** -** | ** 3120 B** | ** 3.82** |
133
+ | ** PolylineDecoder_Decode** | ** .NET 9.0** | ** 498.7 ns** | ** 1.27 ns** | ** 1.19 ns** | ** 1.00** | ** 0.00** | ** 1** | ** 0.3901** | ** -** | ** 816 B** | ** 1.00** |
134
+ | ** Polyliner_Decode** | ** .NET 9.0** | ** 705.2 ns** | ** 1.30 ns** | ** 1.15 ns** | ** 1.41** | ** 0.00** | ** 2** | ** 1.5526** | ** -** | ** 3248 B** | ** 3.98** |
135
+
136
+
137
+ #### Encode
138
+
139
+ ```
140
+
141
+ BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2894)
142
+ Apple Silicon, 4 CPU, 4 logical and 4 physical cores
143
+ .NET SDK 9.0.102
144
+ [Host] : .NET 9.0.1 (9.0.124.61010), Arm64 RyuJIT AdvSIMD
145
+ Job-CJKHIS : .NET 5.0.17 (5.0.1722.21314), Arm64 RyuJIT AdvSIMD
146
+ Job-GAHPKM : .NET 6.0.36 (6.0.3624.51421), Arm64 RyuJIT AdvSIMD
147
+ Job-KWIIGA : .NET 7.0.20 (7.0.2024.26716), Arm64 RyuJIT AdvSIMD
148
+ Job-ZMWUEM : .NET 8.0.12 (8.0.1224.60305), Arm64 RyuJIT AdvSIMD
149
+ Job-EQIHVN : .NET 9.0.1 (9.0.124.61010), Arm64 RyuJIT AdvSIMD
150
+
151
+
152
+ ```
153
+ | Method | Runtime | Mean | Error | StdDev | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
154
+ | ---------------------------------- | --------- | -----------:| ---------:| ---------:| ------:| --------:| -----:| -------:| -------:| ----------:| ------------:|
155
+ | ** Cloudikka_PolylineEncoding_Encode** | ** .NET 5.0** | ** 8,936.5 ns** | ** 26.81 ns** | ** 25.07 ns** | ** 8.18** | ** 0.04** | ** 3** | ** 2.2583** | ** -** | ** 13.91 KB** | ** 7.95** |
156
+ | ** PolylineEncoder_Encode** | ** .NET 5.0** | ** 1,092.4 ns** | ** 4.73 ns** | ** 4.42 ns** | ** 1.00** | ** 0.01** | ** 1** | ** 0.2842** | ** -** | ** 1.75 KB** | ** 1.00** |
157
+ | ** Polyliner_Encode** | ** .NET 5.0** | ** 1,291.0 ns** | ** 4.05 ns** | ** 3.16 ns** | ** 1.18** | ** 0.01** | ** 2** | ** 0.3643** | ** 0.0019** | ** 2.23 KB** | ** 1.28** |
158
+ | | | | | | | | | | | | |
159
+ | ** Cloudikka_PolylineEncoding_Encode** | ** .NET 6.0** | ** 7,640.7 ns** | ** 21.80 ns** | ** 20.39 ns** | ** 7.56** | ** 0.04** | ** 3** | ** 2.2583** | ** -** | ** 13.91 KB** | ** 7.95** |
160
+ | ** PolylineEncoder_Encode** | ** .NET 6.0** | ** 1,011.3 ns** | ** 4.33 ns** | ** 4.05 ns** | ** 1.00** | ** 0.01** | ** 1** | ** 0.2842** | ** -** | ** 1.75 KB** | ** 1.00** |
161
+ | ** Polyliner_Encode** | ** .NET 6.0** | ** 1,080.0 ns** | ** 3.35 ns** | ** 3.13 ns** | ** 1.07** | ** 0.01** | ** 2** | ** 0.3643** | ** 0.0019** | ** 2.23 KB** | ** 1.28** |
162
+ | | | | | | | | | | | | |
163
+ | ** Cloudikka_PolylineEncoding_Encode** | ** .NET 7.0** | ** 6,718.0 ns** | ** 13.77 ns** | ** 12.88 ns** | ** 6.65** | ** 0.02** | ** 3** | ** 6.8054** | ** -** | ** 13.91 KB** | ** 7.95** |
164
+ | ** PolylineEncoder_Encode** | ** .NET 7.0** | ** 1,010.1 ns** | ** 3.32 ns** | ** 3.11 ns** | ** 1.00** | ** 0.00** | ** 1** | ** 0.8564** | ** -** | ** 1.75 KB** | ** 1.00** |
165
+ | ** Polyliner_Encode** | ** .NET 7.0** | ** 1,075.9 ns** | ** 3.27 ns** | ** 2.73 ns** | ** 1.07** | ** 0.00** | ** 2** | ** 1.0929** | ** -** | ** 2.23 KB** | ** 1.28** |
166
+ | | | | | | | | | | | | |
167
+ | ** Cloudikka_PolylineEncoding_Encode** | ** .NET 8.0** | ** 4,969.5 ns** | ** 9.29 ns** | ** 8.24 ns** | ** 9.53** | ** 0.03** | ** 3** | ** 6.8054** | ** -** | ** 13.91 KB** | ** 7.95** |
168
+ | ** PolylineEncoder_Encode** | ** .NET 8.0** | ** 521.4 ns** | ** 1.37 ns** | ** 1.28 ns** | ** 1.00** | ** 0.00** | ** 1** | ** 0.8564** | ** -** | ** 1.75 KB** | ** 1.00** |
169
+ | ** Polyliner_Encode** | ** .NET 8.0** | ** 1,020.7 ns** | ** 2.90 ns** | ** 2.57 ns** | ** 1.96** | ** 0.01** | ** 2** | ** 1.0929** | ** -** | ** 2.23 KB** | ** 1.28** |
170
+ | | | | | | | | | | | | |
171
+ | ** Cloudikka_PolylineEncoding_Encode** | ** .NET 9.0** | ** 3,809.8 ns** | ** 27.85 ns** | ** 26.06 ns** | ** 7.21** | ** 0.05** | ** 3** | ** 4.3335** | ** -** | ** 8.86 KB** | ** 5.06** |
172
+ | ** PolylineEncoder_Encode** | ** .NET 9.0** | ** 528.2 ns** | ** 1.85 ns** | ** 1.73 ns** | ** 1.00** | ** 0.00** | ** 1** | ** 0.8564** | ** -** | ** 1.75 KB** | ** 1.00** |
173
+ | ** Polyliner_Encode** | ** .NET 9.0** | ** 1,033.9 ns** | ** 6.30 ns** | ** 5.89 ns** | ** 1.96** | ** 0.01** | ** 2** | ** 1.0929** | ** -** | ** 2.23 KB** | ** 1.28** |
174
+
175
+
176
+
96
177
### Documentation
97
178
98
179
Documentation is can be found at https://dropoutcoder.github.io/polyline-algorithm-csharp/api/index.html .
0 commit comments