)]}'
{
  "commit": "6b2ec065871019d07dcbe6ca527fbd4c600e1c19",
  "tree": "ec8664ae376c9fab705f6dfd359fd6af8100070a",
  "parents": [
    "17d9093bf214f3461815410c298006bac8427c0e"
  ],
  "author": {
    "name": "Dmitriy Vyukov",
    "email": "dvyukov@google.com",
    "time": "Thu Jul 21 13:57:13 2011 -0400"
  },
  "committer": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Thu Jul 21 13:57:13 2011 -0400"
  },
  "message": "runtime: faster select\n\nMake selectsend() accept pointer to the element,\nit makes it possible to make Scase fixed-size\nand allocate/free Select, all Scase\u0027s and all SudoG at once.\nAs a consequence SudoG freelist die out.\n\nbenchmark                       old,ns/op  new,ns/op\nBenchmarkSelectUncontended\t     1080        558\nBenchmarkSelectUncontended-2\t      675        264\nBenchmarkSelectUncontended-4\t      459        205\nBenchmarkSelectContended\t     1086        560\nBenchmarkSelectContended-2\t     1775       1672\nBenchmarkSelectContended-4\t     2668       2149\n(on Intel Q6600, 4 cores, 2.4GHz)\n\nbenchmark                       old ns/op    new ns/op    delta\nBenchmarkSelectUncontended         517.00       326.00  -36.94%\nBenchmarkSelectUncontended-2       281.00       166.00  -40.93%\nBenchmarkSelectUncontended-4       250.00        83.10  -66.76%\nBenchmarkSelectUncontended-8       107.00        47.40  -55.70%\nBenchmarkSelectUncontended-16       67.80        41.30  -39.09%\nBenchmarkSelectContended           513.00       325.00  -36.65%\nBenchmarkSelectContended-2         699.00       628.00  -10.16%\nBenchmarkSelectContended-4        1085.00      1092.00   +0.65%\nBenchmarkSelectContended-8        3253.00      2477.00  -23.85%\nBenchmarkSelectContended-16       5313.00      5116.00   -3.71%\n(on Intel E5620, 8 HT cores, 2.4 GHz)\n\nR\u003drsc, ken\nCC\u003dgolang-dev\nhttps://golang.org/cl/4811041\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "95098c8afa3c83a43a2be6f456de616907711213",
      "old_mode": 33188,
      "old_path": "src/cmd/gc/builtin.c.boot",
      "new_id": "6419873a28c7eef1366ec452f94bb9f801948350",
      "new_mode": 33188,
      "new_path": "src/cmd/gc/builtin.c.boot"
    },
    {
      "type": "modify",
      "old_id": "8ca086ee043fe53df711871700e44b3f33959342",
      "old_mode": 33188,
      "old_path": "src/cmd/gc/go.h",
      "new_id": "ff71e80a9476df08dfe5cc11b42a868e6238d5cd",
      "new_mode": 33188,
      "new_path": "src/cmd/gc/go.h"
    },
    {
      "type": "modify",
      "old_id": "e13c95db93a90fdf327e07d2bba1eca4784f9b1a",
      "old_mode": 33188,
      "old_path": "src/cmd/gc/runtime.go",
      "new_id": "7254f874e85be055de7bc835bf483ec797da13ef",
      "new_mode": 33188,
      "new_path": "src/cmd/gc/runtime.go"
    },
    {
      "type": "modify",
      "old_id": "91d4ebfd50f6863fec30654024639bcc8d808bdd",
      "old_mode": 33188,
      "old_path": "src/cmd/gc/select.c",
      "new_id": "14ec015f2db0825f612f1c21a0da97006e301a7e",
      "new_mode": 33188,
      "new_path": "src/cmd/gc/select.c"
    },
    {
      "type": "modify",
      "old_id": "4253deabb2a8bf9053e0b12bfec6502c2f8a0249",
      "old_mode": 33188,
      "old_path": "src/cmd/gc/subr.c",
      "new_id": "96727b10bd8f00508f14b78010b5d8c38793c477",
      "new_mode": 33188,
      "new_path": "src/cmd/gc/subr.c"
    },
    {
      "type": "modify",
      "old_id": "d02fff3c26d4d33ff799bef786d62581fdfd3d68",
      "old_mode": 33188,
      "old_path": "src/cmd/ld/dwarf.c",
      "new_id": "d8ca27acea3d7063370a1f9624ed0df366866cdf",
      "new_mode": 33188,
      "new_path": "src/cmd/ld/dwarf.c"
    },
    {
      "type": "modify",
      "old_id": "0fdf771968dbe67d480aa60eef5459519dab338c",
      "old_mode": 33188,
      "old_path": "src/pkg/runtime/chan.c",
      "new_id": "7010d06d189ef80d6470f7f54ddf5a81c790d7d7",
      "new_mode": 33188,
      "new_path": "src/pkg/runtime/chan.c"
    }
  ]
}
