@@ -282,34 +282,56 @@ Benchmarks
282282NOTE: the 1 allocation and B/op in the first 4 decodes is actually the struct allocating when passing it in, so primitives are actually zero allocation.
283283
284284``` go
285- go test -run=NONE -bench=. -benchmem=true ./...
285+ go test -run=NONE -bench=. -benchmem ./...
286+ goos: darwin
287+ goarch: arm64
288+ pkg: github.com /go -playground/form/v4
289+ cpu: Apple M3 Max
290+ BenchmarkNestedArrayDecode100-16 75 15782643 ns/op 18754349 B /op 360810 allocs/op
291+ BenchmarkNestedArrayDecode1000-16 1 2227892458 ns/op 1877558216 B /op 36011385 allocs/op
292+ PASS
293+ ok github.com /go -playground/form/v4 4. 251s
286294goos: darwin
287295goarch: arm64
288296pkg: github.com /go -playground/form/v4/benchmarks
289- BenchmarkSimpleUserDecodeStruct-8 8704111 121.1 ns/op 64 B /op 1 allocs/op
290- BenchmarkSimpleUserDecodeStructParallel-8 35916134 32.89 ns/op 64 B /op 1 allocs/op
291- BenchmarkSimpleUserEncodeStruct-8 3746173 320.7 ns/op 485 B /op 10 allocs/op
292- BenchmarkSimpleUserEncodeStructParallel-8 7293147 180.0 ns/op 485 B /op 10 allocs/op
293- BenchmarkPrimitivesDecodeStructAllPrimitivesTypes-8 2993259 400.5 ns/op 96 B /op 1 allocs/op
294- BenchmarkPrimitivesDecodeStructAllPrimitivesTypesParallel-8 13023300 97.70 ns/op 96 B /op 1 allocs/op
295- BenchmarkPrimitivesEncodeStructAllPrimitivesTypes-8 643202 1767 ns/op 2977 B /op 35 allocs/op
296- BenchmarkPrimitivesEncodeStructAllPrimitivesTypesParallel-8 1000000 1202 ns/op 2978 B /op 35 allocs/op
297- BenchmarkComplexArrayDecodeStructAllTypes-8 172630 6822 ns/op 2008 B /op 121 allocs/op
298- BenchmarkComplexArrayDecodeStructAllTypesParallel-8 719788 1735 ns/op 2009 B /op 121 allocs/op
299- BenchmarkComplexArrayEncodeStructAllTypes-8 197052 5839 ns/op 7087 B /op 104 allocs/op
300- BenchmarkComplexArrayEncodeStructAllTypesParallel-8 348039 3247 ns/op 7089 B /op 104 allocs/op
301- BenchmarkComplexMapDecodeStructAllTypes-8 139246 8550 ns/op 5313 B /op 130 allocs/op
302- BenchmarkComplexMapDecodeStructAllTypesParallel-8 409018 3143 ns/op 5317 B /op 130 allocs/op
303- BenchmarkComplexMapEncodeStructAllTypes-8 208833 5515 ns/op 4257 B /op 103 allocs/op
304- BenchmarkComplexMapEncodeStructAllTypesParallel-8 523833 2182 ns/op 4258 B /op 103 allocs/op
305- BenchmarkDecodeNestedStruct-8 807690 1408 ns/op 344 B /op 14 allocs/op
306- BenchmarkDecodeNestedStructParallel-8 3409441 359.6 ns/op 344 B /op 14 allocs/op
307- BenchmarkEncodeNestedStruct-8 1488520 803.6 ns/op 653 B /op 16 allocs/op
308- BenchmarkEncodeNestedStructParallel-8 3570204 346.6 ns/op 653 B /op 16 allocs/op
297+ cpu: Apple M3 Max
298+ BenchmarkSimpleUserDecodeStruct-16 12669696 94.60 ns/op 64 B /op 1 allocs/op
299+ BenchmarkSimpleUserDecodeStructParallel-16 46715631 27.79 ns/op 64 B /op 1 allocs/op
300+ BenchmarkSimpleUserEncodeStruct-16 4624094 256.7 ns/op 485 B /op 10 allocs/op
301+ BenchmarkSimpleUserEncodeStructParallel-16 7386290 166.2 ns/op 485 B /op 10 allocs/op
302+ BenchmarkPrimitivesDecodeStructAllPrimitivesTypes-16 3533421 332.3 ns/op 96 B /op 1 allocs/op
303+ BenchmarkPrimitivesDecodeStructAllPrimitivesTypesParallel-16 20706642 59.43 ns/op 96 B /op 1 allocs/op
304+ BenchmarkPrimitivesEncodeStructAllPrimitivesTypes-16 1228750 966.4 ns/op 1465 B /op 34 allocs/op
305+ BenchmarkPrimitivesEncodeStructAllPrimitivesTypesParallel-16 1962678 607.2 ns/op 1465 B /op 34 allocs/op
306+ BenchmarkComplexArrayDecodeStructAllTypes-16 213568 5361 ns/op 2081 B /op 121 allocs/op
307+ BenchmarkComplexArrayDecodeStructAllTypesParallel-16 960226 1314 ns/op 2087 B /op 121 allocs/op
308+ BenchmarkComplexArrayEncodeStructAllTypes-16 271944 4017 ns/op 6788 B /op 107 allocs/op
309+ BenchmarkComplexArrayEncodeStructAllTypesParallel-16 441998 2829 ns/op 6791 B /op 107 allocs/op
310+ BenchmarkComplexMapDecodeStructAllTypes-16 179220 6359 ns/op 5300 B /op 130 allocs/op
311+ BenchmarkComplexMapDecodeStructAllTypesParallel-16 412233 2933 ns/op 5310 B /op 130 allocs/op
312+ BenchmarkComplexMapEncodeStructAllTypes-16 262464 4122 ns/op 4083 B /op 106 allocs/op
313+ BenchmarkComplexMapEncodeStructAllTypesParallel-16 622110 2084 ns/op 4084 B /op 106 allocs/op
314+ BenchmarkDecodeNestedStruct-16 823956 1247 ns/op 344 B /op 14 allocs/op
315+ BenchmarkDecodeNestedStructParallel-16 4689418 267.5 ns/op 344 B /op 14 allocs/op
316+ BenchmarkEncodeNestedStruct-16 1844667 636.0 ns/op 653 B /op 16 allocs/op
317+ BenchmarkEncodeNestedStructParallel-16 4302678 278.8 ns/op 653 B /op 16 allocs/op
309318```
310319
311320Competitor benchmarks can be found [ here] ( https://github.com/go-playground/form/blob/master/benchmarks/benchmarks.md )
312321
322+
323+ Maintenance and support for SDK major versions
324+ ----------------------------------------------
325+
326+ This package is aligned with the [ Go release policy] ( https://go.dev/doc/devel/release ) in that support is guaranteed for
327+ the two most recent major versions.
328+
329+ This does not mean the package will not work with older versions of Go, only that we reserve the right to increase the
330+ MSGV(Minimum Supported Go Version) when the need arises to address Security issues/patches, OS issues & support or newly
331+ introduced functionality that would greatly benefit the maintenance and/or usage of this package.
332+
333+ If and when the MSGV is increased it will be done so in a minimum of a ` Minor ` release bump.
334+
313335Complimentary Software
314336----------------------
315337
0 commit comments