Some containers benchmarking

In order to improve navigable map we benchmarked:

Ignored the following because they do not support Set:

Results

  1. For this path Field1[*raw][0].Field2[0].Field3[*new]

    • Get:
    goos: linux
    goarch: amd64
    pkg: github.com/Trial97/github.com/Trial97/dynPathBench
    cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    BenchmarkGabsField
    BenchmarkGabsField-8                 	10571704	       115.4 ns/op	      16 B/op	       1 allocs/op
    BenchmarkIJSONField
    BenchmarkIJSONField-8                	14814273	        78.35 ns/op	       0 B/op	       0 allocs/op
    BenchmarkOrderdNavigableMapField
    BenchmarkOrderdNavigableMapField-8   	 9967938	       110.1 ns/op	       0 B/op	       0 allocs/op
    BenchmarkNavigableMapField
    BenchmarkNavigableMapField-8         	10827984	       117.6 ns/op	       0 B/op	       0 allocs/op
    BenchmarkNodeField
    BenchmarkNodeField-8                 	13504286	        88.17 ns/op	       0 B/op	       0 allocs/op
    BenchmarkSimpleJSONField
    BenchmarkSimpleJSONField-8           	 3026115	       463.7 ns/op	     112 B/op	       7 allocs/op
    PASS
    ok  	github.com/Trial97/github.com/Trial97/dynPathBench	25.403s
    
    • Set
    goos: linux
    goarch: amd64
    pkg: github.com/Trial97/github.com/Trial97/dynPathBench
    cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    BenchmarkGabsSet
    BenchmarkGabsSet-8                 	 7471309	       163.8 ns/op	      32 B/op	       2 allocs/op
    BenchmarkIJSONSet
    BenchmarkIJSONSet-8                	 4803643	       265.8 ns/op	      16 B/op	       1 allocs/op
    BenchmarkOrderdNavigableMapSet
    BenchmarkOrderdNavigableMapSet-8   	 2050528	       581.5 ns/op	     256 B/op	       5 allocs/op
    BenchmarkNavigableMapSet
    BenchmarkNavigableMapSet-8         	 2232222	       550.1 ns/op	     256 B/op	       5 allocs/op
    BenchmarkNodeSet
    BenchmarkNodeSet-8                 	 8660870	       135.1 ns/op	      16 B/op	       1 allocs/op
    BenchmarkSimpleJSONSet
    BenchmarkSimpleJSONSet-8           	 5793783	       190.9 ns/op	      16 B/op	       1 allocs/op
    PASS
    ok  	github.com/Trial97/github.com/Trial97/dynPathBench	9.142s
    
    • Remove
    goos: linux
    goarch: amd64
    pkg: github.com/Trial97/github.com/Trial97/dynPathBench
    cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    BenchmarkNavigableMapRemove
    BenchmarkNavigableMapRemove-8   	  991753	      1140 ns/op	     400 B/op	       6 allocs/op
    BenchmarkNodeRemove
    BenchmarkNodeRemove-8           	 2249872	       527.5 ns/op	       0 B/op	       0 allocs/op
    PASS
    ok  	github.com/Trial97/github.com/Trial97/dynPathBench	17.801s
    
  2. For random generated path

    • Get
    goos: linux
    goarch: amd64
    pkg: github.com/Trial97/github.com/Trial97/dynPathBench
    cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    BenchmarkGabsField
    BenchmarkGabsField-8                 	     200	   5575869 ns/op	  160000 B/op	   10000 allocs/op
    BenchmarkIJSONField
    BenchmarkIJSONField-8                	     181	   6803418 ns/op	       0 B/op	       0 allocs/op
    BenchmarkOrderdNavigableMapField
    BenchmarkOrderdNavigableMapField-8   	     150	   9650566 ns/op	       0 B/op	       0 allocs/op
    BenchmarkNavigableMapField
    BenchmarkNavigableMapField-8         	     128	   9529681 ns/op	       0 B/op	       0 allocs/op
    BenchmarkNodeField
    BenchmarkNodeField-8                 	     171	   8136261 ns/op	       0 B/op	       0 allocs/op
    BenchmarkSimpleJSONField
    BenchmarkSimpleJSONField-8           	     129	   8201091 ns/op	 1361153 B/op	   85072 allocs/op
    PASS
    ok  	github.com/Trial97/github.com/Trial97/dynPathBench	16.115s
    
    • Set
    goos: linux
    goarch: amd64
    pkg: github.com/Trial97/github.com/Trial97/dynPathBench
    cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    BenchmarkGabsSet
    BenchmarkGabsSet-8                 	     158	   6673167 ns/op	  487702 B/op	   20951 allocs/op
    BenchmarkIJSONSet
    BenchmarkIJSONSet-8                	     123	   9146072 ns/op	  375452 B/op	   11222 allocs/op
    BenchmarkOrderdNavigableMapSet
    BenchmarkOrderdNavigableMapSet-8   	      81	  13964574 ns/op	  673490 B/op	   22106 allocs/op
    BenchmarkNavigableMapSet
    BenchmarkNavigableMapSet-8         	     147	   7199784 ns/op	  500241 B/op	   21022 allocs/op
    BenchmarkNodeSet
    BenchmarkNodeSet-8                 	     140	   7153473 ns/op	  343107 B/op	   11682 allocs/op
    BenchmarkSimpleJSONSet
    BenchmarkSimpleJSONSet-8           	     162	   7209049 ns/op	  323591 B/op	   10928 allocs/op
    PASS
    ok  	github.com/Trial97/github.com/Trial97/dynPathBench	9.084s