)]}'
{
  "commit": "feafd1012a32c05ec6095f69ddc3850afb621f3a",
  "tree": "81ee3b609b5ad3aba95838ae8f7536f676218466",
  "parents": [
    "95b0f8fe31a992a33c040bbe3867901335c12762"
  ],
  "author": {
    "name": "David \u0027Digit\u0027 Turner",
    "email": "digit@google.com",
    "time": "Fri Dec 17 13:02:59 2021 +0100"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Oct 14 23:22:22 2024 +0000"
  },
  "message": "Do not copy parent build_dependency_files_ in Scope constructors.\n\nSourceFileSet insert operations appear high in performance profiles,\nand can be reduced by doing less of them. This is achieved by\nensuring that Scope::build_dependency_files_ only contains the\nsource files added by a given scope, instead of the union of the\nscope itself and of its parents.\n\nA new method Scope::CollectBuildDependencyFiles() is introduced to\ncompute the final set of source files for users that need it.\n\nMeasurements with hyperfine shows that this speeds up `gn gen`\nx1.05 with a small Fuchsia build plan (7.2s -\u003e 6,8s). Also\npeak RSS goes from 3.78 GiB to 3.58 GiB (200 MiB saved!).\n\nChange-Id: I684b305421ec684e45b02785e70580efa8f1c2ff\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/17880\nReviewed-by: Dirk Pranke \u003cdpranke@google.com\u003e\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d86e4cc3ce6852223374cc19c88b1626da8df421",
      "old_mode": 33188,
      "old_path": "src/gn/function_toolchain.cc",
      "new_id": "1945a6ae4277e572fe7a37a578c8bd24f3f7b6ca",
      "new_mode": 33188,
      "new_path": "src/gn/function_toolchain.cc"
    },
    {
      "type": "modify",
      "old_id": "adc1ce31c309e247771649415a064cbf6d9690b7",
      "old_mode": 33188,
      "old_path": "src/gn/functions.cc",
      "new_id": "5d958a5894b69cce6cf2d140a0ce0175a5fd22f7",
      "new_mode": 33188,
      "new_path": "src/gn/functions.cc"
    },
    {
      "type": "modify",
      "old_id": "0efe1f9231d5f53ca860c13d5ba729eb426fe124",
      "old_mode": 33188,
      "old_path": "src/gn/scope.cc",
      "new_id": "0e8ec91df86e3c52fdb47e73a99128a54f5c542c",
      "new_mode": 33188,
      "new_path": "src/gn/scope.cc"
    },
    {
      "type": "modify",
      "old_id": "b8529412b9e08e8ba9f338126bc6bbad2f3d37c7",
      "old_mode": 33188,
      "old_path": "src/gn/scope.h",
      "new_id": "c9db2942be2e6f795a90c42da150735fa4bda2ba",
      "new_mode": 33188,
      "new_path": "src/gn/scope.h"
    },
    {
      "type": "modify",
      "old_id": "9f82685505b881e5cd86cfe6fc6488f5efed4b3f",
      "old_mode": 33188,
      "old_path": "src/gn/scope_unittest.cc",
      "new_id": "c16cb3a52598792745d5e89c0aba5f40481c181d",
      "new_mode": 33188,
      "new_path": "src/gn/scope_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "c9e6b8bf9ddbfa16269dbcc9a21d6047ae862826",
      "old_mode": 33188,
      "old_path": "src/gn/setup.cc",
      "new_id": "c2f0aed34b6b9117c752f99ba723976ed53a13ed",
      "new_mode": 33188,
      "new_path": "src/gn/setup.cc"
    },
    {
      "type": "modify",
      "old_id": "4138889a92b8a47d72b9b57cbbf2892048f10f66",
      "old_mode": 33188,
      "old_path": "src/gn/target_generator.cc",
      "new_id": "59bcf1a80e3760103295bf248d5f1e8551db3ca2",
      "new_mode": 33188,
      "new_path": "src/gn/target_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "029393cc005966ea191c9b712f9d987e83ab8307",
      "old_mode": 33188,
      "old_path": "src/gn/template.cc",
      "new_id": "a01cd8c1ead707ec2275cdc897503f44c7854ed2",
      "new_mode": 33188,
      "new_path": "src/gn/template.cc"
    }
  ]
}
