)]}'
{
  "commit": "ef0e05897cd0ae1dfa2d9a881e17957cf1841add",
  "tree": "033d99c5f0bee5462c9199b5447c178d0ec451ee",
  "parents": [
    "a155c8c78af4030169a8da4886dc0c6b170535de"
  ],
  "author": {
    "name": "Takuto Ikuta",
    "email": "tikuta@google.com",
    "time": "Thu Mar 05 10:13:43 2026 +0900"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Mar 04 17:23:03 2026 -0800"
  },
  "message": "[gn] Optimize Value::LIST with Copy-On-Write using nullptr\n\nTo reduce the execution time of `gn gen`, the internal holding of\nValue::LIST was changed from `std::vector\u003cValue\u003e` to\n`scoped_refptr\u003cValueList\u003e` to enable Copy-On-Write (COW).\n\nThis reduces unnecessary deep copies and allocation overhead for large\nlists, significantly improving performance.\n\nPerformance benchmark comparing this optimization to the main branch:\nBenchmark 1: gn_unoptimized gen out/Default\n  Time (mean ± σ):      2.384 s ±  0.085 s    [User: 23.577 s, System: 20.115 s]\n\nBenchmark 2: gn_optimized gen out/Default\n  Time (mean ± σ):      2.051 s ±  0.043 s    [User: 21.155 s, System: 19.339 s]\n\nSummary\n  gn_optimized ran 1.16 ± 0.05 times faster than gn_unoptimized\n\nBug: 484863025\nChange-Id: I08a3d8f5bc2dd9c794fb06a99de48ec0c36e18d8\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/21340\nCommit-Queue: Takuto Ikuta \u003ctikuta@google.com\u003e\nReviewed-by: Sylvain Defresne \u003csdefresne@chromium.org\u003e\nReviewed-by: David Turner \u003cdigit@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c3bb9b512c744f524af3ab70b1983eac61fdaa4e",
      "old_mode": 33188,
      "old_path": "src/gn/value.cc",
      "new_id": "43e2118480d7ed7ac432e97bf7361864638f7067",
      "new_mode": 33188,
      "new_path": "src/gn/value.cc"
    },
    {
      "type": "modify",
      "old_id": "fd16c6b533ef1f22ecc5e7178e9b972d4b1ee36a",
      "old_mode": 33188,
      "old_path": "src/gn/value.h",
      "new_id": "d963447bf4fe740bc443d6083328b507ad6bec69",
      "new_mode": 33188,
      "new_path": "src/gn/value.h"
    }
  ]
}
