)]}'
{
  "commit": "98873a205002cd8a9a92e99ced0a7e6e20ceab2f",
  "tree": "c5fe6eb9c5290bbbdc199a149873f18bef51fb7b",
  "parents": [
    "39bbf13930f428c2e82b36d5f92e8f85cc1451cc"
  ],
  "author": {
    "name": "Nicolas Hillegeer",
    "email": "aktau@google.com",
    "time": "Wed Apr 03 13:25:41 2024 -0700"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Mon Apr 08 13:08:10 2024 +0000"
  },
  "message": "internal/impl: pass ExtensionTypeDescriptor to extensionMap\n\nThe layers freely convert between ExtensionTypeDescriptor (via\nExtensionTypeDescriptor.Type) and ExtensionType (via\nExtensionType.TypeDescriptor()). For certain hot functions , like\n(*extensionMap).Has() and (*extensionMap).Get(), this saves a Type() and\nTypeDescriptor() pair.\n\nOddly, the gains are bigger than I expected. This commit is\n02-typedesciptor-not-type, it is layered on top of CL 576315\n(named 01-cse-hasextension):\n\n    benchstat 00-cse-messageinfo 01-cse-hasextension 02-typedesciptor-not-type\n    goarch: amd64\n    cpu: AMD Ryzen Threadripper PRO 3995WX 64-Cores\n                          │ 00-cse-messageinfo │         01-cse-hasextension         │      02-typedesciptor-not-type      │\n                          │       sec/op       │    sec/op     vs base               │   sec/op     vs base                │\n    Extension/Has/None-12         103.30n ± 3%    96.73n ± 1%  -6.36% (p\u003d0.000 n\u003d10)   85.54n ± 2%  -17.19% (p\u003d0.000 n\u003d10)\n    Extension/Has/Set-12          113.05n ± 3%   107.15n ± 1%  -5.22% (p\u003d0.000 n\u003d10)   97.36n ± 2%  -13.88% (p\u003d0.000 n\u003d10)\n    Extension/Get/None-12          182.7n ± 2%    176.3n ± 2%  -3.48% (p\u003d0.000 n\u003d10)   173.3n ± 2%   -5.09% (p\u003d0.000 n\u003d10)\n    Extension/Get/Set-12           140.1n ± 2%    138.0n ± 1%  -1.46% (p\u003d0.024 n\u003d10)   135.0n ± 1%   -3.64% (p\u003d0.000 n\u003d10)\n    Extension/Set-12               218.6n ± 2%    219.5n ± 1%       ~ (p\u003d0.172 n\u003d10)   210.2n ± 2%   -3.82% (p\u003d0.001 n\u003d10)\n    geomean                        145.6n         140.8n       -3.25%                  132.6n        -8.91%\n\nChange-Id: If9c67c680ca57b5d93f863bb1c72f3e5031ed18c\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/576316\nReviewed-by: Michael Stapelberg \u003cstapelberg@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Nicolas Hillegeer \u003caktau@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d337778bf2442532673a2ceb152a85600e8a794",
      "old_mode": 33188,
      "old_path": "internal/cmd/generate-types/impl.go",
      "new_id": "13d510d1f97d848e140d12da735db923bbca978f",
      "new_mode": 33188,
      "new_path": "internal/cmd/generate-types/impl.go"
    },
    {
      "type": "modify",
      "old_id": "c138f4ae24aeaa19bdffc5bd1c751784d9f794e0",
      "old_mode": 33188,
      "old_path": "internal/impl/message_reflect.go",
      "new_id": "a6f0dbdade64887216871be4339f1d83a05b17b4",
      "new_mode": 33188,
      "new_path": "internal/impl/message_reflect.go"
    },
    {
      "type": "modify",
      "old_id": "b10033e3b0bc272f2c8c588eb00803fe4896949d",
      "old_mode": 33188,
      "old_path": "internal/impl/message_reflect_gen.go",
      "new_id": "29ba6bd35523e45d4659d52f45f4377212a506da",
      "new_mode": 33188,
      "new_path": "internal/impl/message_reflect_gen.go"
    }
  ]
}
