)]}'
{
  "commit": "1af960802ad7032b668140e846dbc4e902fffa9c",
  "tree": "d0449ca4940c82e37c699bd5b43ad7c249152875",
  "parents": [
    "44840786ae2a7a24d81df176494e0af5ba9764c4"
  ],
  "author": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Thu Mar 21 11:25:09 2013 -0400"
  },
  "committer": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Thu Mar 21 11:25:09 2013 -0400"
  },
  "message": "crypto/rc4: faster amd64, 386 implementations\n\n-- amd64 --\n\nOn a MacBookPro10,2 (Core i5):\n\nbenchmark           old ns/op    new ns/op    delta\nBenchmarkRC4_128          470          421  -10.43%\nBenchmarkRC4_1K          3123         3275   +4.87%\nBenchmarkRC4_8K         26351        25866   -1.84%\n\nbenchmark            old MB/s     new MB/s  speedup\nBenchmarkRC4_128       272.22       303.40    1.11x\nBenchmarkRC4_1K        327.80       312.58    0.95x\nBenchmarkRC4_8K        307.24       313.00    1.02x\n\nFor comparison, on the same machine, openssl 0.9.8r reports\nits rc4 speed as somewhat under 350 MB/s for both 1K and 8K.\nThe Core i5 performance can be boosted another 20%, but only\nby making the Xeon performance significantly slower.\n\nOn an Intel Xeon E5520:\n\nbenchmark           old ns/op    new ns/op    delta\nBenchmarkRC4_128          774          417  -46.12%\nBenchmarkRC4_1K          6121         3200  -47.72%\nBenchmarkRC4_8K         48394        25151  -48.03%\n\nbenchmark            old MB/s     new MB/s  speedup\nBenchmarkRC4_128       165.18       306.84    1.86x\nBenchmarkRC4_1K        167.28       319.92    1.91x\nBenchmarkRC4_8K        167.29       321.89    1.92x\n\nFor comparison, on the same machine, openssl 1.0.1\n(which uses a different implementation than 0.9.8r)\nreports its rc4 speed as 587 MB/s for 1K and 601 MB/s for 8K.\nIt is using SIMD instructions to do more in parallel.\n\nSo there\u0027s still some improvement to be had, but even so,\nthis is almost 2x faster than what it replaced.\n\n-- 386 --\n\nOn a MacBookPro10,2 (Core i5):\n\nbenchmark           old ns/op    new ns/op    delta\nBenchmarkRC4_128         3491          421  -87.94%\nBenchmarkRC4_1K         28063         3205  -88.58%\nBenchmarkRC4_8K        220392        25228  -88.55%\n\nbenchmark            old MB/s     new MB/s  speedup\nBenchmarkRC4_128        36.66       303.81    8.29x\nBenchmarkRC4_1K         36.49       319.42    8.75x\nBenchmarkRC4_8K         36.73       320.90    8.74x\n\nOn an Intel Xeon E5520:\n\nbenchmark           old ns/op    new ns/op    delta\nBenchmarkRC4_128         2268          524  -76.90%\nBenchmarkRC4_1K         18161         4137  -77.22%\nBenchmarkRC4_8K        142396        32350  -77.28%\n\nbenchmark            old MB/s     new MB/s  speedup\nBenchmarkRC4_128        56.42       244.13    4.33x\nBenchmarkRC4_1K         56.38       247.46    4.39x\nBenchmarkRC4_8K         56.86       250.26    4.40x\n\nR\u003dagl\nCC\u003dgolang-dev\nhttps://golang.org/cl/7547050\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "55b527bd8c9f03573aa53c7db98f76dd27d15360",
      "new_mode": 33188,
      "new_path": "src/pkg/crypto/rc4/rc4_386.s"
    },
    {
      "type": "modify",
      "old_id": "ffe9ada85bb3b5c473d79c2366809e7121683201",
      "old_mode": 33188,
      "old_path": "src/pkg/crypto/rc4/rc4_amd64.s",
      "new_id": "d6d4577a3834e575e1ad0e744f545ea18ee80e21",
      "new_mode": 33188,
      "new_path": "src/pkg/crypto/rc4/rc4_amd64.s"
    },
    {
      "type": "modify",
      "old_id": "0b66e4a9e21a6f0bb75f5346a910d33ea0c9f1e3",
      "old_mode": 33188,
      "old_path": "src/pkg/crypto/rc4/rc4_asm.go",
      "new_id": "532768dff26b43cfd933c84bafa63c579e010966",
      "new_mode": 33188,
      "new_path": "src/pkg/crypto/rc4/rc4_asm.go"
    },
    {
      "type": "modify",
      "old_id": "1018548c240a05087cc5020c76302ebbbceefe43",
      "old_mode": 33188,
      "old_path": "src/pkg/crypto/rc4/rc4_ref.go",
      "new_id": "44d3804368ae3b6e127e538d05cc07a028c8d2fa",
      "new_mode": 33188,
      "new_path": "src/pkg/crypto/rc4/rc4_ref.go"
    },
    {
      "type": "modify",
      "old_id": "9e12789f7f38ec7e033acd85b7163e895f8d10b9",
      "old_mode": 33188,
      "old_path": "src/pkg/crypto/rc4/rc4_test.go",
      "new_id": "1ce03608ca26ac0f6269ff492b3d6f3ca5613375",
      "new_mode": 33188,
      "new_path": "src/pkg/crypto/rc4/rc4_test.go"
    }
  ]
}
