)]}'
{
  "commit": "67d6be139c77b63395d8c1fa29cdae8d34635f3e",
  "tree": "446c84e256f30ff0c09325361e2ecb8e42fc65f6",
  "parents": [
    "3c29aca43630da1604c3378d2351050f23655268"
  ],
  "author": {
    "name": "Joe Tsai",
    "email": "joetsai@digital-static.net",
    "time": "Sat Apr 16 19:01:48 2022 -0700"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Thu Apr 21 23:45:36 2022 +0000"
  },
  "message": "reflect: make more Value methods inlineable\n\nThe following Value methods are now inlineable:\n\n    Bool  for ~bool\n    String for ~string (but not other kinds)\n    Bytes for []byte (but not ~[]byte or ~[N]byte)\n    Len   for ~[]T (but not ~[N]T, ~chan T, ~map[K]V, or ~string)\n    Cap   for ~[]T (but not ~[N]T or ~chan T)\n\nFor Bytes, we only have enough inline budget to inline one type,\nso we optimize for unnamed []byte, which is far more common than\nnamed []byte or [N]byte.\n\nFor Len and Cap, we only have enough inline budget to inline one kind,\nso we optimize for ~[]T, which is more common than the others.\nThe exception is string, but the size of a string can be obtained\nthrough len(v.String()).\n\nPerformance:\n\n\tBool        1.65ns ± 0%  0.51ns ± 3%  -68.81%  (p\u003d0.008 n\u003d5+5)\n\tString      1.97ns ± 1%  0.70ns ± 1%  -64.25%  (p\u003d0.008 n\u003d5+5)\n\tBytes       8.90ns ± 2%  0.89ns ± 1%  -89.95%  (p\u003d0.008 n\u003d5+5)\n\tNamedBytes  8.89ns ± 1%  8.88ns ± 1%     ~     (p\u003d0.548 n\u003d5+5)\n\tBytesArray  10.0ns ± 2%  10.2ns ± 1%   +1.58%  (p\u003d0.048 n\u003d5+5)\n\tSliceLen    1.97ns ± 1%  0.45ns ± 1%  -77.22%  (p\u003d0.008 n\u003d5+5)\n\tMapLen      2.62ns ± 1%  3.07ns ± 1%  +17.24%  (p\u003d0.008 n\u003d5+5)\n\tStringLen   1.96ns ± 1%  1.98ns ± 2%     ~     (p\u003d0.151 n\u003d5+5)\n\tArrayLen    1.96ns ± 1%  2.19ns ± 1%  +11.46%  (p\u003d0.008 n\u003d5+5)\n\tSliceCap    1.76ns ± 1%  0.45ns ± 2%  -74.28%  (p\u003d0.008 n\u003d5+5)\n\nThere\u0027s a slight slowdown (~10-20%) for obtaining the length\nof a string or map, but a substantial improvement for slices.\n\nPerformance according to encoding/json:\n\n\tCodeMarshal          555µs ± 2%   562µs ± 4%     ~     (p\u003d0.421 n\u003d5+5)\n\tMarshalBytes/32      163ns ± 1%   157ns ± 1%   -3.82%  (p\u003d0.008 n\u003d5+5)\n\tMarshalBytes/256     453ns ± 1%   447ns ± 1%     ~     (p\u003d0.056 n\u003d5+5)\n\tMarshalBytes/4096   4.10µs ± 1%  4.09µs ± 0%     ~     (p\u003d1.000 n\u003d5+4)\n\tCodeUnmarshal       3.16ms ± 2%  3.02ms ± 1%   -4.18%  (p\u003d0.008 n\u003d5+5)\n\tCodeUnmarshalReuse  2.64ms ± 3%  2.51ms ± 2%   -4.81%  (p\u003d0.016 n\u003d5+5)\n\tUnmarshalString     65.4ns ± 4%  64.1ns ± 0%     ~     (p\u003d0.190 n\u003d5+4)\n\tUnmarshalFloat64    59.8ns ± 5%  58.9ns ± 2%     ~     (p\u003d0.222 n\u003d5+5)\n\tUnmarshalInt64      51.7ns ± 1%  50.0ns ± 2%   -3.26%  (p\u003d0.008 n\u003d5+5)\n\tEncodeMarshaler     23.6ns ±11%  20.8ns ± 1%  -12.10%  (p\u003d0.016 n\u003d5+4)\n\nAdd all inlineable methods of Value to cmd/compile/internal/test/inl_test.go.\n\nChange-Id: Ifc192491918af6b62f7fe3a094a5a5256bfb326d\nReviewed-on: https://go-review.googlesource.com/c/go/+/400676\nReviewed-by: Brad Fitzpatrick \u003cbradfitz@golang.org\u003e\nReviewed-by: Ian Lance Taylor \u003ciant@google.com\u003e\nRun-TryBot: Ian Lance Taylor \u003ciant@google.com\u003e\nAuto-Submit: Ian Lance Taylor \u003ciant@google.com\u003e\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "211068e1dc3511863a7793514e237954d888ddcf",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/test/inl_test.go",
      "new_id": "af66a32085d736ba4de92bc39c9442df9b825734",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/test/inl_test.go"
    },
    {
      "type": "modify",
      "old_id": "a886f9f64abbc8b2574825fd07e36241a47b30c3",
      "old_mode": 33188,
      "old_path": "src/reflect/all_test.go",
      "new_id": "72d01c7deb10928f2796545c8e6962ceaf0bcfc6",
      "new_mode": 33188,
      "new_path": "src/reflect/all_test.go"
    },
    {
      "type": "modify",
      "old_id": "de24d4c712101227bbbca427134ed53bfcf80c51",
      "old_mode": 33188,
      "old_path": "src/reflect/value.go",
      "new_id": "6b5ebfae24ca1cab94cb13ecd662e8d2c4d515e4",
      "new_mode": 33188,
      "new_path": "src/reflect/value.go"
    }
  ]
}
