)]}'
{
  "commit": "1341cce7c9e7fa6a464695a23b019dcb1130d252",
  "tree": "2836e6ec8abbeab0a2ac52c87020ec3e1111ce51",
  "parents": [
    "ac1e76034d92e31483901156465957d898c79e0b"
  ],
  "author": {
    "name": "Evan Rauch",
    "email": "esrauch@google.com",
    "time": "Mon Aug 24 16:07:38 2026 +0000"
  },
  "committer": {
    "name": "Mike Kruskal",
    "email": "mkruskal@google.com",
    "time": "Tue Sep 08 09:44:05 2026 -0700"
  },
  "message": "internal/impl: optimize oneof unmarshaling and serialization by precomputing itabs\n\nPrecompute the canonical interface itab for oneof wrapper structs during\ncoder initialization. This enables oneof field unmarshaling and serialization\nto inspect and assign interface values directly via [2]unsafe.Pointer without\nreflection (reflect.ValueOf, reflect.New, reflect.Value.Set) overhead.\n\nIf the interface already holds an instance of the target oneof wrapper struct,\nthe existing wrapper pointer is reused to preserve merge semantics and eliminate\nreallocations.\n\nInternal production-shaped micro-benchmarks show significant improvements on\nworkloads with oneofs:\n- Workload 1 (metric oneofs): -35% unmarshal wall time / -25% user CPU\n- Workload 2 (request oneofs): -18% unmarshal wall time / -10% user CPU\n- Workload 3 (response oneofs): -12% unmarshal wall time / -7% user CPU\nWorkloads without oneofs remain statistically unchanged.\n\nChange-Id: Ifb9a33c9421aa53a1e6485b576c3dc6c8474e652\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/820341\nReviewed-by: Michael Stapelberg \u003cstapelberg@google.com\u003e\nReviewed-by: Mike Kruskal \u003cmkruskal@google.com\u003e\nReviewed-by: Cassondra Foesch \u003ccfoesch@gmail.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Sandy Zhang \u003csandyzhang@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d14d7d93cca5b007d1f9a0a8b60c4b8faf275349",
      "old_mode": 33188,
      "old_path": "internal/impl/codec_field.go",
      "new_id": "226dcd130d69039e85de09ac8a6b93147a790f2b",
      "new_mode": 33188,
      "new_path": "internal/impl/codec_field.go"
    },
    {
      "type": "modify",
      "old_id": "62f8bf663ea25785307ad5f3b21282ff26d6c135",
      "old_mode": 33188,
      "old_path": "internal/impl/pointer_unsafe.go",
      "new_id": "26722103b525797a8dc2a5bfb419262255ea2a07",
      "new_mode": 33188,
      "new_path": "internal/impl/pointer_unsafe.go"
    }
  ]
}
