diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 3f58f63..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,70 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:cf84c1cf34b76875b25f45cbffd95ca409cdf370473a6caa078abc16db06484a" - name = "github.com/Jeffail/gabs" - packages = ["."] - pruneopts = "UT" - revision = "7a0fed31069aba77993a518cc2f37b28ee7aa883" - version = "v1.1.0" - -[[projects]] - branch = "master" - digest = "1:84a5a2b67486d5d67060ac393aa255d05d24ed5ee41daecd5635ec22657b6492" - name = "github.com/mailru/easyjson" - packages = [ - "buffer", - "jlexer", - "jwriter", - ] - pruneopts = "UT" - revision = "60711f1a8329503b04e1c88535f419d0bb440bff" - -[[projects]] - branch = "master" - digest = "1:9d9989e96f765584e1b58e7f23e1b94740deb282fd363e5e7c5b5e30ae7b7c2c" - name = "github.com/pquerna/ffjson" - packages = [ - "fflib/v1", - "fflib/v1/internal", - ] - pruneopts = "UT" - revision = "af8b230fcd2007c7095168ca8ab94c68b60840c6" - -[[projects]] - digest = "1:2cab41f59638fdb77dda96ab4f9b5860ef30f48967557254eba127e43c756f2e" - name = "github.com/tidwall/gjson" - packages = ["."] - pruneopts = "UT" - revision = "1e3f6aeaa5bad08d777ea7807b279a07885dd8b2" - version = "v1.1.3" - -[[projects]] - branch = "master" - digest = "1:d3f968e2a2c9f8506ed44b01b605ade0176ba6cf73ff679073e77cfdef2c0d55" - name = "github.com/tidwall/match" - packages = ["."] - pruneopts = "UT" - revision = "1731857f09b1f38450e2c12409748407822dc6be" - -[[projects]] - digest = "1:0c1bd4e9b2d596d0d6e676f2764a40f3f39a12d85d65308ffadcd68fde3af5e4" - name = "github.com/tidwall/sjson" - packages = ["."] - pruneopts = "UT" - revision = "6a22caf2fd45d5e2119bfc3717e984f15a7eb7ee" - version = "v1.0.0" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/Jeffail/gabs", - "github.com/mailru/easyjson/jlexer", - "github.com/mailru/easyjson/jwriter", - "github.com/pquerna/ffjson/fflib/v1", - "github.com/tidwall/sjson", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index b133e4f..0000000 --- a/Gopkg.toml +++ /dev/null @@ -1,46 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - - -[[constraint]] - name = "github.com/Jeffail/gabs" - version = "1.1.0" - -[[constraint]] - branch = "master" - name = "github.com/mailru/easyjson" - -[[constraint]] - branch = "master" - name = "github.com/pquerna/ffjson" - -[[constraint]] - name = "github.com/tidwall/sjson" - version = "1.0.0" - -[prune] - go-tests = true - unused-packages = true diff --git a/README.md b/README.md index b89b547..8eed1cc 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,19 @@ Benchmarks of SJSON alongside [encoding/json](https://golang.org/pkg/encoding/js and [Gabs](https://github.com/Jeffail/gabs) ``` -Benchmark_SJSON-8 3000000 805 ns/op 1077 B/op 3 allocs/op -Benchmark_SJSON_ReplaceInPlace-8 3000000 449 ns/op 0 B/op 0 allocs/op -Benchmark_JSON_Map-8 300000 21236 ns/op 6392 B/op 150 allocs/op -Benchmark_JSON_Struct-8 300000 14691 ns/op 1789 B/op 24 allocs/op -Benchmark_Gabs-8 300000 21311 ns/op 6752 B/op 150 allocs/op -Benchmark_FFJSON-8 300000 17673 ns/op 3589 B/op 47 allocs/op -Benchmark_EasyJSON-8 1500000 3119 ns/op 1061 B/op 13 allocs/op +Benchmark_SJSON-8 3000000 415.2 ns/op 1005 B/op 2 allocs/op +Benchmark_SJSON_ReplaceInPlace-8 13991337 256.9 ns/op 0 B/op 0 allocs/op +Benchmark_Encoding_JSON_Map-8 409584 8196 ns/op 5183 B/op 124 allocs/op +Benchmark_Encoding_JSON_Struct-8 760608 4806 ns/op 1061 B/op 25 allocs/op +Benchmark_Gabs-8 441423 8095 ns/op 5557 B/op 124 allocs/op +Benchmark_FFJSON-8 458751 7817 ns/op 3486 B/op 50 allocs/op +Benchmark_EasyJSON-8 2360268 1498 ns/op 1061 B/op 13 allocs/op ``` +*These benchmarks were run on a MacBook Pro 14" 8C M1 Pro using Go 1.20.* + +Last run: March 09, 2023 + JSON document used: ```json @@ -45,10 +49,6 @@ JSON document used: } ``` -*These benchmarks were run on a MacBook Pro 15" 2.8 GHz Intel Core i7 using Go 1.8.* - -Last run: May 10, 2017 - ## Usage If you desire to run this current benchmarks on your local computer, diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ca48434 --- /dev/null +++ b/go.mod @@ -0,0 +1,17 @@ +module github.com/tidwall/sjson-benchmarks + +go 1.20 + +require ( + github.com/Jeffail/gabs v1.4.0 + github.com/mailru/easyjson v0.7.7 + github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7 + github.com/tidwall/sjson v1.2.5 +) + +require ( + github.com/josharian/intern v1.0.0 // indirect + github.com/tidwall/gjson v1.14.4 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..8e546d6 --- /dev/null +++ b/go.sum @@ -0,0 +1,30 @@ +github.com/Jeffail/gabs v1.1.0 h1:kw5zCcl9tlJNHTDme7qbi21fDHZmXrnjMoXos3Jw/NI= +github.com/Jeffail/gabs v1.1.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= +github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= +github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 h1:7sBb9iOkeq+O7AXlVoH/8zpIcRXX523zMkKKspHjjx8= +github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= +github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7 h1:xoIK0ctDddBMnc74udxJYBqlo9Ylnsp1waqjLsnef20= +github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= +github.com/tidwall/gjson v1.1.3 h1:u4mspaByxY+Qk4U1QYYVzGFI8qxN/3jtEV0ZDb2vRic= +github.com/tidwall/gjson v1.1.3/go.mod h1:c/nTNbUr0E0OrXEhq1pwa8iEgc2DOt4ZZqAt1HtCkPA= +github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= +github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/match v1.0.0 h1:Ym1EcFkp+UQ4ptxfWlW+iMdq5cPH5nEuGzdf/Pb7VmI= +github.com/tidwall/match v1.0.0/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= +github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= +github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.0.0 h1:hOrzQPtGKlKAudQVmU43GkxEgG8TOgKyiKUyb7sE0rs= +github.com/tidwall/sjson v1.0.0/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7VpF15Y= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= diff --git a/sjson_test.go b/sjson_test.go index 3eeb220..a7472cc 100644 --- a/sjson_test.go +++ b/sjson_test.go @@ -1,4 +1,4 @@ -package sjson_test +package main import ( "bytes"