)]}'
{
  "log": [
    {
      "commit": "553a641470496b2327abcac10b36396bd98e45c9",
      "tree": "5fb5836b98c606d48e4db56b141d060b19c7b6c4",
      "parents": [
        "7db9049039a047d955fe8c19b83c8ff5abd765c7",
        "0d9c4c05f138df50573330060c3317a9b36387ae"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 16 10:32:05 2017 +1100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 16 10:32:05 2017 +1100"
      },
      "message": "Merge pull request #37 from fatedier/master\n\nfix typo"
    },
    {
      "commit": "0d9c4c05f138df50573330060c3317a9b36387ae",
      "tree": "5fb5836b98c606d48e4db56b141d060b19c7b6c4",
      "parents": [
        "7db9049039a047d955fe8c19b83c8ff5abd765c7"
      ],
      "author": {
        "name": "fatedier",
        "email": "fatedier@gmail.com",
        "time": "Wed Jan 25 15:05:35 2017 +0800"
      },
      "committer": {
        "name": "fatedier",
        "email": "fatedier@gmail.com",
        "time": "Wed Jan 25 15:07:54 2017 +0800"
      },
      "message": "fix typo\n"
    },
    {
      "commit": "7db9049039a047d955fe8c19b83c8ff5abd765c7",
      "tree": "7ab562283d6491019eb26a30a9285e298e3c91e3",
      "parents": [
        "d9eb7a3d35ec988b8585d4a0068e462c27d28380",
        "5a0054d7b7e6dfeefcea1ee745dcae42c9680ac6"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Jan 19 12:47:23 2017 +1100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 19 12:47:23 2017 +1100"
      },
      "message": "Merge pull request #36 from sguiheux/gofmt\n\nRun gofmt."
    },
    {
      "commit": "5a0054d7b7e6dfeefcea1ee745dcae42c9680ac6",
      "tree": "7ab562283d6491019eb26a30a9285e298e3c91e3",
      "parents": [
        "d9eb7a3d35ec988b8585d4a0068e462c27d28380"
      ],
      "author": {
        "name": "Steven Guiheux",
        "email": "steven.guiheux@corp.ovh.com",
        "time": "Wed Jan 18 11:51:53 2017 +0100"
      },
      "committer": {
        "name": "Steven Guiheux",
        "email": "steven.guiheux@corp.ovh.com",
        "time": "Wed Jan 18 11:51:53 2017 +0100"
      },
      "message": "fix: gofmt\n"
    },
    {
      "commit": "d9eb7a3d35ec988b8585d4a0068e462c27d28380",
      "tree": "1cc36a52e2567a3bc1d2ab8d66cdc8b999b621ca",
      "parents": [
        "d6668316e43571d7dde95be6fd077f96de002f8b"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun May 29 15:00:41 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun May 29 15:00:41 2016 +1000"
      },
      "message": "Support the COPY_4 tag.\n\nIt is a valid encoding, even if no longer issued by most encoders.\n\nname              old speed      new speed      delta\nWordsDecode1e1-8   525MB/s ± 0%   504MB/s ± 1%  -4.04%   (p\u003d0.000 n\u003d9+10)\nWordsDecode1e2-8  1.23GB/s ± 0%  1.23GB/s ± 1%    ~      (p\u003d0.678 n\u003d10+9)\nWordsDecode1e3-8  1.54GB/s ± 0%  1.53GB/s ± 1%  -0.75%   (p\u003d0.000 n\u003d10+9)\nWordsDecode1e4-8  1.53GB/s ± 0%  1.51GB/s ± 3%  -1.46%   (p\u003d0.000 n\u003d9+10)\nWordsDecode1e5-8   793MB/s ± 0%   777MB/s ± 2%  -2.01%   (p\u003d0.017 n\u003d9+10)\nWordsDecode1e6-8   917MB/s ± 1%   917MB/s ± 1%    ~      (p\u003d0.473 n\u003d8+10)\nWordsEncode1e1-8   641MB/s ± 2%   641MB/s ± 0%    ~      (p\u003d0.780 n\u003d10+9)\nWordsEncode1e2-8   583MB/s ± 0%   580MB/s ± 0%  -0.41%   (p\u003d0.001 n\u003d10+9)\nWordsEncode1e3-8   647MB/s ± 1%   648MB/s ± 0%    ~      (p\u003d0.326 n\u003d10+9)\nWordsEncode1e4-8   442MB/s ± 1%   452MB/s ± 0%  +2.20%   (p\u003d0.000 n\u003d10+8)\nWordsEncode1e5-8   355MB/s ± 1%   355MB/s ± 0%    ~      (p\u003d0.880 n\u003d10+8)\nWordsEncode1e6-8   433MB/s ± 0%   434MB/s ± 0%    ~       (p\u003d0.700 n\u003d8+8)\nRandomEncode-8    14.2GB/s ± 3%  14.2GB/s ± 3%    ~      (p\u003d0.780 n\u003d10+9)\n_UFlat0-8         2.18GB/s ± 1%  2.19GB/s ± 0%    ~      (p\u003d0.447 n\u003d10+9)\n_UFlat1-8         1.40GB/s ± 2%  1.41GB/s ± 0%  +0.73%   (p\u003d0.043 n\u003d9+10)\n_UFlat2-8         23.4GB/s ± 3%  23.5GB/s ± 2%    ~      (p\u003d0.497 n\u003d9+10)\n_UFlat3-8         1.90GB/s ± 0%  1.91GB/s ± 0%  +0.30%    (p\u003d0.002 n\u003d8+9)\n_UFlat4-8         13.9GB/s ± 2%  14.0GB/s ± 1%    ~      (p\u003d0.720 n\u003d9+10)\n_UFlat5-8         1.96GB/s ± 1%  1.97GB/s ± 0%  +0.81%   (p\u003d0.000 n\u003d10+9)\n_UFlat6-8          813MB/s ± 0%   814MB/s ± 0%  +0.17%   (p\u003d0.037 n\u003d8+10)\n_UFlat7-8          783MB/s ± 2%   785MB/s ± 0%    ~       (p\u003d0.340 n\u003d9+9)\n_UFlat8-8          859MB/s ± 0%   857MB/s ± 0%    ~       (p\u003d0.074 n\u003d8+9)\n_UFlat9-8          719MB/s ± 1%   719MB/s ± 1%    ~      (p\u003d0.621 n\u003d10+9)\n_UFlat10-8        2.84GB/s ± 0%  2.84GB/s ± 0%  +0.19%   (p\u003d0.043 n\u003d10+9)\n_UFlat11-8        1.05GB/s ± 1%  1.05GB/s ± 0%    ~       (p\u003d0.523 n\u003d9+8)\n_ZFlat0-8         1.04GB/s ± 2%  1.04GB/s ± 0%    ~       (p\u003d0.222 n\u003d9+9)\n_ZFlat1-8          535MB/s ± 0%   534MB/s ± 0%    ~       (p\u003d0.059 n\u003d9+9)\n_ZFlat2-8         15.6GB/s ± 3%  15.7GB/s ± 1%    ~      (p\u003d0.720 n\u003d9+10)\n_ZFlat3-8          723MB/s ± 0%   740MB/s ± 3%  +2.36%   (p\u003d0.034 n\u003d8+10)\n_ZFlat4-8         9.16GB/s ± 1%  9.20GB/s ± 1%    ~       (p\u003d0.297 n\u003d9+9)\n_ZFlat5-8          987MB/s ± 1%   991MB/s ± 0%    ~       (p\u003d0.167 n\u003d9+8)\n_ZFlat6-8          378MB/s ± 2%   379MB/s ± 0%    ~       (p\u003d0.334 n\u003d9+8)\n_ZFlat7-8          350MB/s ± 2%   352MB/s ± 0%  +0.60%    (p\u003d0.014 n\u003d9+8)\n_ZFlat8-8          397MB/s ± 0%   396MB/s ± 1%    ~      (p\u003d0.965 n\u003d8+10)\n_ZFlat9-8          328MB/s ± 0%   327MB/s ± 1%    ~       (p\u003d0.409 n\u003d8+9)\n_ZFlat10-8        1.33GB/s ± 0%  1.33GB/s ± 1%    ~      (p\u003d0.356 n\u003d9+10)\n_ZFlat11-8         605MB/s ± 0%   605MB/s ± 1%    ~       (p\u003d0.743 n\u003d9+8)\n"
    },
    {
      "commit": "d6668316e43571d7dde95be6fd077f96de002f8b",
      "tree": "60f19e66a18d6d6e0cc6fc8f778f7a23ec8820f0",
      "parents": [
        "d7b1e156f50d3c4664f683603af70e3e47fa0aa2"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu May 19 13:34:20 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu May 19 13:34:20 2016 +1000"
      },
      "message": "Fix BenchmarkExtendMatch to honor the testdata flag.\n"
    },
    {
      "commit": "d7b1e156f50d3c4664f683603af70e3e47fa0aa2",
      "tree": "9aa9e4b34b1aebaf512aa941cf54a64704e55d1a",
      "parents": [
        "aefa7ba4ef3005262bc58a868df27fe6c7ff2359"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu May 05 08:17:12 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu May 05 08:17:12 2016 +1000"
      },
      "message": "Add a benchdataDir flag.\n"
    },
    {
      "commit": "aefa7ba4ef3005262bc58a868df27fe6c7ff2359",
      "tree": "e93687cfbee2c080c007e36d541c320afa507906",
      "parents": [
        "43fea289edce21979658cbbdb3925390890aa86e"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu May 05 07:48:01 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu May 05 07:48:01 2016 +1000"
      },
      "message": "Re-add the testdata flag.\n\nSome build environments need to specify their own testdata dir.\n"
    },
    {
      "commit": "43fea289edce21979658cbbdb3925390890aa86e",
      "tree": "9c2057bc31c2ca64a79844c87ae0b75c170bed41",
      "parents": [
        "b62d312cd2a7474ccb7eb06a4686f0560e4ba7fb"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 30 09:02:19 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 30 09:02:19 2016 +1000"
      },
      "message": "Remove the snappy.test binary, inadvertently checked in.\n\nFixes #32.\n"
    },
    {
      "commit": "b62d312cd2a7474ccb7eb06a4686f0560e4ba7fb",
      "tree": "85f34703faa4eb2957fdd573a599c3019f0feff1",
      "parents": [
        "dfb3612ba2a044dad98f8b170d2f718467c30691"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 15:28:03 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 15:28:03 2016 +1000"
      },
      "message": "Add some benchmark numbers to the README.\n"
    },
    {
      "commit": "dfb3612ba2a044dad98f8b170d2f718467c30691",
      "tree": "19d62f4b6d7324e52169360c4e61bf27b3c15fc3",
      "parents": [
        "c707890a477a74edb4e53dde84613abf3ad29c5d"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 14:21:44 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 14:24:51 2016 +1000"
      },
      "message": "Inline the extendMatch call.\n\nCompared to the previous commit:\nname              old speed      new speed      delta\nWordsEncode1e1-8   701MB/s ± 0%   699MB/s ± 1%     ~     (p\u003d0.123 n\u003d10+10)\nWordsEncode1e2-8   460MB/s ± 0%   583MB/s ± 1%  +26.64%  (p\u003d0.000 n\u003d10+10)\nWordsEncode1e3-8   480MB/s ± 0%   647MB/s ± 2%  +34.85%  (p\u003d0.000 n\u003d10+10)\nWordsEncode1e4-8   416MB/s ± 0%   451MB/s ± 0%   +8.30%   (p\u003d0.000 n\u003d10+8)\nWordsEncode1e5-8   297MB/s ± 0%   355MB/s ± 2%  +19.50%   (p\u003d0.000 n\u003d10+9)\nWordsEncode1e6-8   345MB/s ± 0%   433MB/s ± 2%  +25.47%   (p\u003d0.000 n\u003d10+9)\nRandomEncode-8    14.4GB/s ± 2%  14.3GB/s ± 3%     ~     (p\u003d0.075 n\u003d10+10)\n_ZFlat0-8          891MB/s ± 1%  1040MB/s ± 0%  +16.67%    (p\u003d0.000 n\u003d9+9)\n_ZFlat1-8          471MB/s ± 0%   535MB/s ± 1%  +13.68%   (p\u003d0.000 n\u003d9+10)\n_ZFlat2-8         16.2GB/s ± 3%  16.4GB/s ± 1%     ~      (p\u003d0.122 n\u003d10+8)\n_ZFlat3-8          676MB/s ± 0%   762MB/s ± 0%  +12.62%   (p\u003d0.000 n\u003d10+9)\n_ZFlat4-8         8.36GB/s ± 1%  9.47GB/s ± 1%  +13.28%  (p\u003d0.000 n\u003d10+10)\n_ZFlat5-8          852MB/s ± 0%   986MB/s ± 1%  +15.79%   (p\u003d0.000 n\u003d10+9)\n_ZFlat6-8          316MB/s ± 0%   380MB/s ± 1%  +20.41%    (p\u003d0.000 n\u003d8+9)\n_ZFlat7-8          296MB/s ± 0%   353MB/s ± 0%  +19.44%   (p\u003d0.000 n\u003d8+10)\n_ZFlat8-8          331MB/s ± 1%   399MB/s ± 0%  +20.53%    (p\u003d0.000 n\u003d9+8)\n_ZFlat9-8          274MB/s ± 0%   329MB/s ± 0%  +20.27%    (p\u003d0.000 n\u003d8+9)\n_ZFlat10-8        1.17GB/s ± 0%  1.35GB/s ± 1%  +15.15%    (p\u003d0.000 n\u003d9+9)\n_ZFlat11-8         462MB/s ± 0%   608MB/s ± 0%  +31.54%    (p\u003d0.000 n\u003d9+9)\n\nThe net effect of the past four inlining commits, when compared to just\nbefore c3defccc \"Inline the emitCopy call\":\nname              old speed      new speed      delta\nWordsEncode1e1-8   701MB/s ± 1%   699MB/s ± 1%     ~     (p\u003d0.353 n\u003d10+10)\nWordsEncode1e2-8   429MB/s ± 0%   583MB/s ± 1%  +35.95%   (p\u003d0.000 n\u003d9+10)\nWordsEncode1e3-8   447MB/s ± 0%   647MB/s ± 2%  +44.85%   (p\u003d0.000 n\u003d9+10)\nWordsEncode1e4-8   322MB/s ± 1%   451MB/s ± 0%  +40.00%   (p\u003d0.000 n\u003d10+8)\nWordsEncode1e5-8   268MB/s ± 0%   355MB/s ± 2%  +32.41%    (p\u003d0.000 n\u003d9+9)\nWordsEncode1e6-8   313MB/s ± 0%   433MB/s ± 2%  +38.28%    (p\u003d0.000 n\u003d8+9)\nRandomEncode-8    14.4GB/s ± 1%  14.3GB/s ± 3%     ~      (p\u003d0.897 n\u003d8+10)\n_ZFlat0-8          797MB/s ± 2%  1040MB/s ± 0%  +30.53%    (p\u003d0.000 n\u003d9+9)\n_ZFlat1-8          435MB/s ± 1%   535MB/s ± 1%  +22.97%   (p\u003d0.000 n\u003d9+10)\n_ZFlat2-8         16.1GB/s ± 2%  16.4GB/s ± 1%   +1.47%   (p\u003d0.001 n\u003d10+8)\n_ZFlat3-8          633MB/s ± 0%   762MB/s ± 0%  +20.32%   (p\u003d0.000 n\u003d10+9)\n_ZFlat4-8         7.95GB/s ± 1%  9.47GB/s ± 1%  +19.11%  (p\u003d0.000 n\u003d10+10)\n_ZFlat5-8          771MB/s ± 0%   986MB/s ± 1%  +27.83%   (p\u003d0.000 n\u003d10+9)\n_ZFlat6-8          283MB/s ± 0%   380MB/s ± 1%  +34.46%   (p\u003d0.000 n\u003d10+9)\n_ZFlat7-8          265MB/s ± 0%   353MB/s ± 0%  +33.29%   (p\u003d0.000 n\u003d9+10)\n_ZFlat8-8          299MB/s ± 0%   399MB/s ± 0%  +33.36%    (p\u003d0.000 n\u003d9+8)\n_ZFlat9-8          246MB/s ± 1%   329MB/s ± 0%  +33.58%   (p\u003d0.000 n\u003d10+9)\n_ZFlat10-8        1.05GB/s ± 1%  1.35GB/s ± 1%  +28.35%   (p\u003d0.000 n\u003d10+9)\n_ZFlat11-8         411MB/s ± 0%   608MB/s ± 0%  +47.82%   (p\u003d0.000 n\u003d10+9)\n"
    },
    {
      "commit": "c707890a477a74edb4e53dde84613abf3ad29c5d",
      "tree": "a16b1fd17e39327c7def8b0bab7e9a78f097dd71",
      "parents": [
        "5a44a9da2110bee7a93f552127af8a74bad44fe8"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 14:09:05 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 14:11:06 2016 +1000"
      },
      "message": "Rearrange the extendMatch register allocation.\n\nThis minimizes the diff in a follow-up commit, when manually inlining.\n\nIt\u0027s not an optimization per se, but for the record:\nname              old speed      new speed      delta\nWordsEncode1e1-8   700MB/s ± 1%   701MB/s ± 0%    ~     (p\u003d0.393 n\u003d10+10)\nWordsEncode1e2-8   460MB/s ± 1%   460MB/s ± 0%    ~     (p\u003d0.393 n\u003d10+10)\nWordsEncode1e3-8   478MB/s ± 2%   480MB/s ± 0%    ~     (p\u003d0.912 n\u003d10+10)\nWordsEncode1e4-8   414MB/s ± 0%   416MB/s ± 0%  +0.64%   (p\u003d0.000 n\u003d9+10)\nWordsEncode1e5-8   296MB/s ± 1%   297MB/s ± 0%    ~      (p\u003d0.113 n\u003d9+10)\nWordsEncode1e6-8   345MB/s ± 0%   345MB/s ± 0%    ~      (p\u003d0.949 n\u003d8+10)\nRandomEncode-8    14.4GB/s ± 2%  14.4GB/s ± 2%    ~      (p\u003d0.278 n\u003d9+10)\n_ZFlat0-8          888MB/s ± 1%   891MB/s ± 1%  +0.35%   (p\u003d0.010 n\u003d10+9)\n_ZFlat1-8          471MB/s ± 1%   471MB/s ± 0%    ~      (p\u003d0.447 n\u003d10+9)\n_ZFlat2-8         16.2GB/s ± 3%  16.2GB/s ± 3%    ~     (p\u003d0.912 n\u003d10+10)\n_ZFlat3-8          675MB/s ± 1%   676MB/s ± 0%    ~      (p\u003d0.150 n\u003d9+10)\n_ZFlat4-8         8.31GB/s ± 1%  8.36GB/s ± 1%  +0.65%  (p\u003d0.035 n\u003d10+10)\n_ZFlat5-8          850MB/s ± 0%   852MB/s ± 0%    ~      (p\u003d0.182 n\u003d9+10)\n_ZFlat6-8          316MB/s ± 0%   316MB/s ± 0%    ~      (p\u003d0.762 n\u003d10+8)\n_ZFlat7-8          294MB/s ± 1%   296MB/s ± 0%  +0.51%    (p\u003d0.006 n\u003d9+8)\n_ZFlat8-8          330MB/s ± 1%   331MB/s ± 1%    ~       (p\u003d0.881 n\u003d9+9)\n_ZFlat9-8          273MB/s ± 0%   274MB/s ± 0%  +0.23%   (p\u003d0.043 n\u003d10+8)\n_ZFlat10-8        1.17GB/s ± 1%  1.17GB/s ± 0%    ~      (p\u003d0.922 n\u003d10+9)\n_ZFlat11-8         461MB/s ± 0%   462MB/s ± 0%    ~      (p\u003d0.219 n\u003d10+9)\n\nAlso:\nname           old time/op  new time/op  delta\nExtendMatch-8  7.92µs ± 2%  7.80µs ± 2%  -1.51%  (p\u003d0.002 n\u003d10+9)\nand note that this is time/op instead of MB/s, so negative is better,\nalthough it\u0027s quite possibly all just noise.\n"
    },
    {
      "commit": "5a44a9da2110bee7a93f552127af8a74bad44fe8",
      "tree": "9937478769cb04b8f2fd6f26c0e5606a32a1891f",
      "parents": [
        "c3defccc353d53ff7091dba7a646f482bf15dc98"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 13:20:53 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 13:20:53 2016 +1000"
      },
      "message": "Inline the emitLiteral call.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   712MB/s ± 1%   700MB/s ± 1%   -1.65%  (p\u003d0.000 n\u003d10+10)\nWordsEncode1e2-8   467MB/s ± 0%   460MB/s ± 1%   -1.53%   (p\u003d0.000 n\u003d9+10)\nWordsEncode1e3-8   483MB/s ± 0%   478MB/s ± 2%   -0.98%   (p\u003d0.007 n\u003d9+10)\nWordsEncode1e4-8   353MB/s ± 1%   414MB/s ± 0%  +17.03%   (p\u003d0.000 n\u003d10+9)\nWordsEncode1e5-8   293MB/s ± 0%   296MB/s ± 1%   +1.03%    (p\u003d0.000 n\u003d8+9)\nWordsEncode1e6-8   345MB/s ± 0%   345MB/s ± 0%     ~       (p\u003d0.332 n\u003d9+8)\nRandomEncode-8    14.4GB/s ± 2%  14.4GB/s ± 2%     ~      (p\u003d1.000 n\u003d10+9)\n_ZFlat0-8          863MB/s ± 0%   888MB/s ± 1%   +2.86%   (p\u003d0.000 n\u003d9+10)\n_ZFlat1-8          471MB/s ± 0%   471MB/s ± 1%     ~      (p\u003d0.897 n\u003d8+10)\n_ZFlat2-8         16.2GB/s ± 2%  16.2GB/s ± 3%     ~     (p\u003d0.631 n\u003d10+10)\n_ZFlat3-8          659MB/s ± 1%   675MB/s ± 1%   +2.32%    (p\u003d0.000 n\u003d9+9)\n_ZFlat4-8         8.29GB/s ± 1%  8.31GB/s ± 1%     ~     (p\u003d0.315 n\u003d10+10)\n_ZFlat5-8          836MB/s ± 1%   850MB/s ± 0%   +1.78%    (p\u003d0.000 n\u003d9+9)\n_ZFlat6-8          315MB/s ± 0%   316MB/s ± 0%   +0.39%   (p\u003d0.002 n\u003d9+10)\n_ZFlat7-8          293MB/s ± 1%   294MB/s ± 1%     ~      (p\u003d0.139 n\u003d10+9)\n_ZFlat8-8          331MB/s ± 1%   330MB/s ± 1%     ~      (p\u003d0.356 n\u003d10+9)\n_ZFlat9-8          273MB/s ± 1%   273MB/s ± 0%     ~     (p\u003d0.280 n\u003d10+10)\n_ZFlat10-8        1.12GB/s ± 1%  1.17GB/s ± 1%   +4.12%  (p\u003d0.000 n\u003d10+10)\n_ZFlat11-8         460MB/s ± 0%   461MB/s ± 0%   +0.34%   (p\u003d0.006 n\u003d8+10)\n"
    },
    {
      "commit": "c3defccc353d53ff7091dba7a646f482bf15dc98",
      "tree": "ff438cadb81dc644c0fe368ed3b622971d7004eb",
      "parents": [
        "598d84db771ebc0ceb3b0bc4ae62c8d09a73c6ba"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 12:54:56 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 12:54:56 2016 +1000"
      },
      "message": "Inline the emitCopy call.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   701MB/s ± 1%   712MB/s ± 1%   +1.64%  (p\u003d0.000 n\u003d10+10)\nWordsEncode1e2-8   429MB/s ± 0%   467MB/s ± 0%   +8.86%    (p\u003d0.000 n\u003d9+9)\nWordsEncode1e3-8   447MB/s ± 0%   483MB/s ± 0%   +8.20%    (p\u003d0.000 n\u003d9+9)\nWordsEncode1e4-8   322MB/s ± 1%   353MB/s ± 1%   +9.76%  (p\u003d0.000 n\u003d10+10)\nWordsEncode1e5-8   268MB/s ± 0%   293MB/s ± 0%   +9.42%    (p\u003d0.000 n\u003d9+8)\nWordsEncode1e6-8   313MB/s ± 0%   345MB/s ± 0%  +10.06%    (p\u003d0.000 n\u003d8+9)\nRandomEncode-8    14.4GB/s ± 1%  14.4GB/s ± 2%     ~      (p\u003d0.829 n\u003d8+10)\n_ZFlat0-8          797MB/s ± 2%   863MB/s ± 0%   +8.39%    (p\u003d0.000 n\u003d9+9)\n_ZFlat1-8          435MB/s ± 1%   471MB/s ± 0%   +8.34%    (p\u003d0.000 n\u003d9+8)\n_ZFlat2-8         16.1GB/s ± 2%  16.2GB/s ± 2%     ~     (p\u003d0.165 n\u003d10+10)\n_ZFlat3-8          633MB/s ± 0%   659MB/s ± 1%   +4.12%   (p\u003d0.000 n\u003d10+9)\n_ZFlat4-8         7.95GB/s ± 1%  8.29GB/s ± 1%   +4.22%  (p\u003d0.000 n\u003d10+10)\n_ZFlat5-8          771MB/s ± 0%   836MB/s ± 1%   +8.33%   (p\u003d0.000 n\u003d10+9)\n_ZFlat6-8          283MB/s ± 0%   315MB/s ± 0%  +11.19%   (p\u003d0.000 n\u003d10+9)\n_ZFlat7-8          265MB/s ± 0%   293MB/s ± 1%  +10.73%   (p\u003d0.000 n\u003d9+10)\n_ZFlat8-8          299MB/s ± 0%   331MB/s ± 1%  +10.74%   (p\u003d0.000 n\u003d9+10)\n_ZFlat9-8          246MB/s ± 1%   273MB/s ± 1%  +10.90%  (p\u003d0.000 n\u003d10+10)\n_ZFlat10-8        1.05GB/s ± 1%  1.12GB/s ± 1%   +7.02%  (p\u003d0.000 n\u003d10+10)\n_ZFlat11-8         411MB/s ± 0%   460MB/s ± 0%  +11.79%   (p\u003d0.000 n\u003d10+8)\n"
    },
    {
      "commit": "598d84db771ebc0ceb3b0bc4ae62c8d09a73c6ba",
      "tree": "8949d58c56ed8f5d3df4318a7eae7368d25fed9d",
      "parents": [
        "9f7b278fd78696f07ce25b6941fd896e50870f40"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 12:00:38 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 12:00:38 2016 +1000"
      },
      "message": "Rearrange the emitLiteral register allocation.\n\nThis minimizes the diff in a follow-up commit, when manually inlining.\n\nIt\u0027s not an optimization per se, but for the record:\nname              old speed      new speed      delta\nWordsEncode1e1-8   698MB/s ± 1%   701MB/s ± 1%   ~     (p\u003d0.165 n\u003d10+10)\nWordsEncode1e2-8   428MB/s ± 0%   429MB/s ± 0%   ~       (p\u003d0.489 n\u003d9+9)\nWordsEncode1e3-8   446MB/s ± 0%   447MB/s ± 0%   ~       (p\u003d0.476 n\u003d9+9)\nWordsEncode1e4-8   321MB/s ± 1%   322MB/s ± 1%   ~     (p\u003d0.593 n\u003d10+10)\nWordsEncode1e5-8   267MB/s ± 1%   268MB/s ± 0%   ~       (p\u003d0.287 n\u003d9+9)\nWordsEncode1e6-8   313MB/s ± 1%   313MB/s ± 0%   ~       (p\u003d0.190 n\u003d9+8)\nRandomEncode-8    14.4GB/s ± 1%  14.4GB/s ± 1%   ~       (p\u003d0.673 n\u003d9+8)\n_ZFlat0-8          800MB/s ± 0%   797MB/s ± 2%   ~       (p\u003d0.387 n\u003d9+9)\n_ZFlat1-8          436MB/s ± 1%   435MB/s ± 1%   ~       (p\u003d0.169 n\u003d9+9)\n_ZFlat2-8         16.2GB/s ± 1%  16.1GB/s ± 2%   ~     (p\u003d0.063 n\u003d10+10)\n_ZFlat3-8          633MB/s ± 1%   633MB/s ± 0%   ~      (p\u003d0.661 n\u003d9+10)\n_ZFlat4-8         7.96GB/s ± 1%  7.95GB/s ± 1%   ~     (p\u003d0.796 n\u003d10+10)\n_ZFlat5-8          771MB/s ± 0%   771MB/s ± 0%   ~     (p\u003d0.929 n\u003d10+10)\n_ZFlat6-8          283MB/s ± 1%   283MB/s ± 0%   ~     (p\u003d0.912 n\u003d10+10)\n_ZFlat7-8          265MB/s ± 0%   265MB/s ± 0%   ~       (p\u003d0.649 n\u003d9+9)\n_ZFlat8-8          299MB/s ± 0%   299MB/s ± 0%   ~       (p\u003d0.748 n\u003d9+9)\n_ZFlat9-8          246MB/s ± 1%   246MB/s ± 1%   ~      (p\u003d0.921 n\u003d9+10)\n_ZFlat10-8        1.05GB/s ± 1%  1.05GB/s ± 1%   ~     (p\u003d0.089 n\u003d10+10)\n_ZFlat11-8         410MB/s ± 0%   411MB/s ± 0%   ~     (p\u003d0.190 n\u003d10+10)\n"
    },
    {
      "commit": "9f7b278fd78696f07ce25b6941fd896e50870f40",
      "tree": "d742b34e443272da728531f0498d266b68517b37",
      "parents": [
        "2b29335120440273ce87e777e4d1d511fe7894b8"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 11:22:44 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 11:22:44 2016 +1000"
      },
      "message": "Rearrange the emitCopy register allocation.\n\nThis minimizes the diff in a follow-up commit, when manually inlining.\n\nIt\u0027s not an optimization per se, but for the record:\nname              old speed      new speed      delta\nWordsEncode1e1-8   711MB/s ± 1%   700MB/s ± 1%  -1.64%   (p\u003d0.000 n\u003d9+10)\nWordsEncode1e2-8   407MB/s ± 1%   430MB/s ± 0%  +5.57%  (p\u003d0.000 n\u003d10+10)\nWordsEncode1e3-8   441MB/s ± 1%   447MB/s ± 0%  +1.52%    (p\u003d0.000 n\u003d8+8)\nWordsEncode1e4-8   311MB/s ± 1%   322MB/s ± 0%  +3.69%   (p\u003d0.000 n\u003d9+10)\nWordsEncode1e5-8   267MB/s ± 0%   267MB/s ± 1%    ~      (p\u003d0.068 n\u003d8+10)\nWordsEncode1e6-8   312MB/s ± 1%   314MB/s ± 0%  +0.45%   (p\u003d0.000 n\u003d9+10)\nRandomEncode-8    14.4GB/s ± 2%  14.4GB/s ± 2%    ~     (p\u003d0.739 n\u003d10+10)\n_ZFlat0-8          792MB/s ± 1%   801MB/s ± 0%  +1.11%    (p\u003d0.000 n\u003d8+9)\n_ZFlat1-8          435MB/s ± 1%   437MB/s ± 0%    ~      (p\u003d0.857 n\u003d9+10)\n_ZFlat2-8         16.0GB/s ± 4%  16.3GB/s ± 1%    ~     (p\u003d0.143 n\u003d10+10)\n_ZFlat3-8          613MB/s ± 0%   634MB/s ± 0%  +3.54%   (p\u003d0.000 n\u003d8+10)\n_ZFlat4-8         7.96GB/s ± 1%  7.97GB/s ± 1%    ~      (p\u003d0.829 n\u003d8+10)\n_ZFlat5-8          770MB/s ± 0%   773MB/s ± 0%  +0.33%    (p\u003d0.000 n\u003d8+9)\n_ZFlat6-8          283MB/s ± 0%   283MB/s ± 0%  +0.13%    (p\u003d0.043 n\u003d8+9)\n_ZFlat7-8          264MB/s ± 2%   265MB/s ± 0%  +0.61%    (p\u003d0.000 n\u003d9+9)\n_ZFlat8-8          297MB/s ± 3%   299MB/s ± 0%    ~       (p\u003d0.161 n\u003d9+9)\n_ZFlat9-8          247MB/s ± 1%   247MB/s ± 0%    ~       (p\u003d0.465 n\u003d8+9)\n_ZFlat10-8        1.03GB/s ± 0%  1.05GB/s ± 1%  +1.75%    (p\u003d0.000 n\u003d9+9)\n_ZFlat11-8         409MB/s ± 0%   412MB/s ± 0%  +0.64%    (p\u003d0.000 n\u003d8+8)\n"
    },
    {
      "commit": "2b29335120440273ce87e777e4d1d511fe7894b8",
      "tree": "005914b3217d848df5c04d8631f5b3f39209bf55",
      "parents": [
        "6ffc20e64ac443f023f8e1bb056e1ac5bba73ee5"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 11:06:33 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 11:06:33 2016 +1000"
      },
      "message": "Run asmfmt.\n"
    },
    {
      "commit": "6ffc20e64ac443f023f8e1bb056e1ac5bba73ee5",
      "tree": "2e5d63ded55e1f415f74eeaa4f30e2c6b8901dc3",
      "parents": [
        "ec642410cd033af63620b66a91ccbd3c69c2c59a"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 10:31:32 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Apr 29 10:31:32 2016 +1000"
      },
      "message": "Add more comments for the asm workaround.\n"
    },
    {
      "commit": "ec642410cd033af63620b66a91ccbd3c69c2c59a",
      "tree": "8e6f081e8c9ddb6e6288dde89bf9afc40d2c8a9d",
      "parents": [
        "7dddae14f78fa10091e879948a0ccf67b5acfc68"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 24 10:32:34 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 24 10:32:34 2016 +1000"
      },
      "message": "Workaround \"table-32768(SP)(R11*2)\" not assembling.\n\nThis asm phrase works on Go 1.4 and Go tip, but not Go 1.6. I\u0027m not sure\nwhy, but this workaround should make the package installable while I\ninvestigate.\n\nFixes #29.\n"
    },
    {
      "commit": "7dddae14f78fa10091e879948a0ccf67b5acfc68",
      "tree": "d3fb1b7518de13367de1905100f335a5ddde6e64",
      "parents": [
        "2dbf36527785b61dd460e053f008abafbce9380b"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 24 10:07:12 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 24 10:07:12 2016 +1000"
      },
      "message": "Fix redeclaration of \"end\" in the asm.\n\nMultiple \"end\" labels, in different functions, did not work with the Go\n1.4 toolchain.\n\nFixes #30.\n"
    },
    {
      "commit": "2dbf36527785b61dd460e053f008abafbce9380b",
      "tree": "d2c7900d5f9ad897e6cd5a770b4677312a1b2f6d",
      "parents": [
        "988ce01844c82a01b918c35840520b91b398049e"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 15:01:47 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 15:01:47 2016 +1000"
      },
      "message": "Inline extendMatch for the noasm encoder.\n\nThis is a partial undo of 4f2f9a13 \"Write the encoder\u0027s extendMatch in\nasm\" but we can selectively apply the undo only to the noasm case now\nthat encodeBlock (the function that calls extendMatch) is itself written\nin asm.\n\nWith \"go test -test.bench\u003d\u0027Encode|ZFlat\u0027 -tags\u003dnoasm\":\nname              old speed      new speed      delta\nWordsEncode1e1-8   676MB/s ± 1%   676MB/s ± 0%     ~     (p\u003d0.841 n\u003d5+5)\nWordsEncode1e2-8  85.3MB/s ± 0%  87.5MB/s ± 1%   +2.50%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e3-8   241MB/s ± 0%   258MB/s ± 0%   +7.33%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   199MB/s ± 0%   245MB/s ± 0%  +23.15%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   171MB/s ± 0%   186MB/s ± 0%   +8.57%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   192MB/s ± 0%   211MB/s ± 0%   +9.51%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.1GB/s ± 2%  13.2GB/s ± 1%     ~     (p\u003d0.690 n\u003d5+5)\n_ZFlat0-8          404MB/s ± 0%   431MB/s ± 0%   +6.84%  (p\u003d0.008 n\u003d5+5)\n_ZFlat1-8          260MB/s ± 0%   277MB/s ± 0%   +6.46%  (p\u003d0.008 n\u003d5+5)\n_ZFlat2-8         13.8GB/s ± 1%  13.8GB/s ± 2%     ~     (p\u003d1.000 n\u003d5+5)\n_ZFlat3-8          170MB/s ± 1%   173MB/s ± 0%   +1.60%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         2.94GB/s ± 5%  3.10GB/s ± 0%   +5.35%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          397MB/s ± 1%   426MB/s ± 0%   +7.32%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          175MB/s ± 2%   190MB/s ± 0%   +8.61%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          169MB/s ± 0%   182MB/s ± 0%   +7.47%  (p\u003d0.016 n\u003d4+5)\n_ZFlat8-8          184MB/s ± 3%   200MB/s ± 0%   +8.65%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          163MB/s ± 0%   175MB/s ± 0%   +7.57%  (p\u003d0.016 n\u003d4+5)\n_ZFlat10-8         481MB/s ± 0%   509MB/s ± 0%   +5.80%  (p\u003d0.016 n\u003d4+5)\n_ZFlat11-8         254MB/s ± 0%   275MB/s ± 0%   +8.32%  (p\u003d0.008 n\u003d5+5)\n\nFor the record, after this commit, the comparison between the noasm\n(\u0027old\u0027) and vanilla (i.e. with asm, \u0027new\u0027) encoder benchmarks, summing\nup the last eight or so commits, is:\nname              old speed      new speed       delta\nWordsEncode1e1-8   676MB/s ± 0%    677MB/s ± 1%      ~     (p\u003d0.310 n\u003d5+5)\nWordsEncode1e2-8  87.5MB/s ± 1%  428.3MB/s ± 0%  +389.71%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e3-8   258MB/s ± 0%    446MB/s ± 1%   +72.67%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   245MB/s ± 0%    316MB/s ± 0%   +28.94%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   186MB/s ± 0%    269MB/s ± 0%   +44.86%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   211MB/s ± 0%    314MB/s ± 1%   +48.84%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.2GB/s ± 1%   14.4GB/s ± 1%    +9.33%  (p\u003d0.008 n\u003d5+5)\n_ZFlat0-8          431MB/s ± 0%    792MB/s ± 0%   +83.67%  (p\u003d0.008 n\u003d5+5)\n_ZFlat1-8          277MB/s ± 0%    436MB/s ± 1%   +57.46%  (p\u003d0.008 n\u003d5+5)\n_ZFlat2-8         13.8GB/s ± 2%   16.2GB/s ± 1%   +17.16%  (p\u003d0.008 n\u003d5+5)\n_ZFlat3-8          173MB/s ± 0%    632MB/s ± 1%  +265.85%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         3.10GB/s ± 0%   8.00GB/s ± 0%  +157.99%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          426MB/s ± 0%    768MB/s ± 0%   +80.06%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          190MB/s ± 0%    282MB/s ± 1%   +48.48%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          182MB/s ± 0%    264MB/s ± 1%   +44.97%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          200MB/s ± 0%    298MB/s ± 0%   +49.45%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          175MB/s ± 0%    247MB/s ± 0%   +41.02%  (p\u003d0.008 n\u003d5+5)\n_ZFlat10-8         509MB/s ± 0%   1027MB/s ± 0%  +101.72%  (p\u003d0.008 n\u003d5+5)\n_ZFlat11-8         275MB/s ± 0%    411MB/s ± 0%   +49.57%  (p\u003d0.008 n\u003d5+5)\n"
    },
    {
      "commit": "988ce01844c82a01b918c35840520b91b398049e",
      "tree": "8e4de5c8ccd2ed65a3ec08a7638fcbb7c0834a90",
      "parents": [
        "45da9d9c0fa12c1d81bb7dcb799ffe9ca08c8e84"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 14:45:26 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 14:49:49 2016 +1000"
      },
      "message": "Add a fast path for short emitLiteral calls.\n\nCompared to the previous commit:\nname              old speed      new speed      delta\nWordsEncode1e1-8   667MB/s ± 0%   677MB/s ± 1%   +1.57%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e2-8   353MB/s ± 1%   428MB/s ± 0%  +21.37%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e3-8   383MB/s ± 1%   446MB/s ± 1%  +16.65%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   277MB/s ± 1%   316MB/s ± 0%  +13.93%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   248MB/s ± 0%   269MB/s ± 0%   +8.57%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   296MB/s ± 0%   314MB/s ± 1%   +6.08%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    14.4GB/s ± 2%  14.4GB/s ± 1%     ~     (p\u003d1.000 n\u003d5+5)\n_ZFlat0-8          748MB/s ± 0%   792MB/s ± 0%   +5.87%  (p\u003d0.008 n\u003d5+5)\n_ZFlat1-8          406MB/s ± 0%   436MB/s ± 1%   +7.42%  (p\u003d0.008 n\u003d5+5)\n_ZFlat2-8         16.1GB/s ± 1%  16.2GB/s ± 1%     ~     (p\u003d0.421 n\u003d5+5)\n_ZFlat3-8          604MB/s ± 0%   632MB/s ± 1%   +4.49%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         7.62GB/s ± 1%  8.00GB/s ± 0%   +5.03%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          729MB/s ± 0%   768MB/s ± 0%   +5.26%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          267MB/s ± 0%   282MB/s ± 1%   +5.92%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          248MB/s ± 0%   264MB/s ± 1%   +6.48%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          282MB/s ± 0%   298MB/s ± 0%   +5.87%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          231MB/s ± 0%   247MB/s ± 0%   +6.79%  (p\u003d0.008 n\u003d5+5)\n_ZFlat10-8         972MB/s ± 0%  1027MB/s ± 0%   +5.64%  (p\u003d0.008 n\u003d5+5)\n_ZFlat11-8         401MB/s ± 0%   411MB/s ± 0%   +2.43%  (p\u003d0.008 n\u003d5+5)\n\nThe net effect of the past three commits, when compared to just before\n68801229 \"Write the encoder\u0027s encodeBlock in asm\":\nname              old speed      new speed       delta\nWordsEncode1e1-8   665MB/s ± 0%    677MB/s ± 1%    +1.80%  (p\u003d0.016 n\u003d4+5)\nWordsEncode1e2-8  85.0MB/s ± 0%  428.3MB/s ± 0%  +403.65%  (p\u003d0.016 n\u003d4+5)\nWordsEncode1e3-8   234MB/s ± 2%    446MB/s ± 1%   +90.90%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   233MB/s ± 0%    316MB/s ± 0%   +35.22%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   214MB/s ± 1%    269MB/s ± 0%   +25.45%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   258MB/s ± 0%    314MB/s ± 1%   +21.82%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.1GB/s ± 1%   14.4GB/s ± 1%   +10.31%  (p\u003d0.008 n\u003d5+5)\n_ZFlat0-8          630MB/s ± 0%    792MB/s ± 0%   +25.71%  (p\u003d0.016 n\u003d4+5)\n_ZFlat1-8          326MB/s ± 0%    436MB/s ± 1%   +33.89%  (p\u003d0.016 n\u003d4+5)\n_ZFlat2-8         13.9GB/s ± 1%   16.2GB/s ± 1%   +16.27%  (p\u003d0.008 n\u003d5+5)\n_ZFlat3-8          177MB/s ± 1%    632MB/s ± 1%  +257.58%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         6.19GB/s ± 1%   8.00GB/s ± 0%   +29.32%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          615MB/s ± 0%    768MB/s ± 0%   +24.91%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          231MB/s ± 0%    282MB/s ± 1%   +21.95%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          215MB/s ± 1%    264MB/s ± 1%   +22.83%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          246MB/s ± 0%    298MB/s ± 0%   +21.46%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          202MB/s ± 0%    247MB/s ± 0%   +22.17%  (p\u003d0.008 n\u003d5+5)\n_ZFlat10-8         803MB/s ± 0%   1027MB/s ± 0%   +27.93%  (p\u003d0.008 n\u003d5+5)\n_ZFlat11-8         351MB/s ± 0%    411MB/s ± 0%   +16.92%  (p\u003d0.008 n\u003d5+5)\n"
    },
    {
      "commit": "45da9d9c0fa12c1d81bb7dcb799ffe9ca08c8e84",
      "tree": "4184ca7ca9ab311fbc176ad717cae53ecc353301",
      "parents": [
        "68801229512d42e123097d5e505e89ea3f4397cc"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 14:31:57 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 14:31:57 2016 +1000"
      },
      "message": "Zero out only that part of the hash table in use.\n\nObviously, the biggest gains are for the smallest inputs.\n\nThe WordsEncode1e1-8 benchmark should be unaffected (except possibly by\nnoise) because it never calls into encodeBlock.\n\nname              old speed      new speed       delta\nWordsEncode1e1-8   678MB/s ± 0%    667MB/s ± 0%    -1.74%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e2-8  90.1MB/s ± 0%  352.9MB/s ± 1%  +291.85%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e3-8   295MB/s ± 0%    383MB/s ± 1%   +29.67%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   276MB/s ± 0%    277MB/s ± 1%      ~     (p\u003d0.310 n\u003d5+5)\nWordsEncode1e5-8   248MB/s ± 0%    248MB/s ± 0%      ~     (p\u003d0.841 n\u003d5+5)\nWordsEncode1e6-8   295MB/s ± 0%    296MB/s ± 0%      ~     (p\u003d0.548 n\u003d5+5)\nRandomEncode-8    14.4GB/s ± 1%   14.4GB/s ± 2%      ~     (p\u003d1.000 n\u003d5+5)\n_ZFlat0-8          749MB/s ± 0%    748MB/s ± 0%      ~     (p\u003d0.151 n\u003d5+5)\n_ZFlat1-8          405MB/s ± 0%    406MB/s ± 0%    +0.18%  (p\u003d0.032 n\u003d4+5)\n_ZFlat2-8         16.2GB/s ± 1%   16.1GB/s ± 1%      ~     (p\u003d0.421 n\u003d5+5)\n_ZFlat3-8          202MB/s ± 1%    604MB/s ± 0%  +198.86%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         7.59GB/s ± 1%   7.62GB/s ± 1%      ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat5-8          728MB/s ± 1%    729MB/s ± 0%      ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat6-8          266MB/s ± 1%    267MB/s ± 0%      ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat7-8          248MB/s ± 0%    248MB/s ± 0%      ~     (p\u003d0.881 n\u003d5+5)\n_ZFlat8-8          282MB/s ± 0%    282MB/s ± 0%      ~     (p\u003d0.556 n\u003d4+5)\n_ZFlat9-8          231MB/s ± 0%    231MB/s ± 0%    +0.23%  (p\u003d0.032 n\u003d5+5)\n_ZFlat10-8         970MB/s ± 0%    972MB/s ± 0%      ~     (p\u003d0.421 n\u003d5+5)\n_ZFlat11-8         402MB/s ± 0%    401MB/s ± 0%      ~     (p\u003d0.730 n\u003d5+5)\n"
    },
    {
      "commit": "68801229512d42e123097d5e505e89ea3f4397cc",
      "tree": "37cc53df6d1cdb9b50370e48359a0336aca760aa",
      "parents": [
        "17e435849f9b5cc7818817bb6e1d5c002f486fef"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 14:21:06 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 14:21:06 2016 +1000"
      },
      "message": "Write the encoder\u0027s encodeBlock in asm.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   665MB/s ± 0%   678MB/s ± 0%   +2.00%  (p\u003d0.016 n\u003d4+5)\nWordsEncode1e2-8  85.0MB/s ± 0%  90.1MB/s ± 0%   +5.90%  (p\u003d0.016 n\u003d4+5)\nWordsEncode1e3-8   234MB/s ± 2%   295MB/s ± 0%  +26.20%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   233MB/s ± 0%   276MB/s ± 0%  +18.31%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   214MB/s ± 1%   248MB/s ± 0%  +15.52%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   258MB/s ± 0%   295MB/s ± 0%  +14.62%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.1GB/s ± 1%  14.4GB/s ± 1%  +10.27%  (p\u003d0.008 n\u003d5+5)\n_ZFlat0-8          630MB/s ± 0%   749MB/s ± 0%  +18.96%  (p\u003d0.016 n\u003d4+5)\n_ZFlat1-8          326MB/s ± 0%   405MB/s ± 0%  +24.41%  (p\u003d0.029 n\u003d4+4)\n_ZFlat2-8         13.9GB/s ± 1%  16.2GB/s ± 1%  +16.04%  (p\u003d0.008 n\u003d5+5)\n_ZFlat3-8          177MB/s ± 1%   202MB/s ± 1%  +14.51%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         6.19GB/s ± 1%  7.59GB/s ± 1%  +22.64%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          615MB/s ± 0%   728MB/s ± 1%  +18.45%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          231MB/s ± 0%   266MB/s ± 1%  +15.00%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          215MB/s ± 1%   248MB/s ± 0%  +15.30%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          246MB/s ± 0%   282MB/s ± 0%  +14.73%  (p\u003d0.016 n\u003d5+4)\n_ZFlat9-8          202MB/s ± 0%   231MB/s ± 0%  +14.13%  (p\u003d0.008 n\u003d5+5)\n_ZFlat10-8         803MB/s ± 0%   970MB/s ± 0%  +20.90%  (p\u003d0.008 n\u003d5+5)\n_ZFlat11-8         351MB/s ± 0%   402MB/s ± 0%  +14.29%  (p\u003d0.008 n\u003d5+5)\n"
    },
    {
      "commit": "17e435849f9b5cc7818817bb6e1d5c002f486fef",
      "tree": "47b5f1962e5ffd85b7e4013cfa2aeb6654094a24",
      "parents": [
        "0c43e98dfe3f41a99362fa041990a047da508eee"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 12:27:13 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 12:28:42 2016 +1000"
      },
      "message": "Restrict the scope of the tableSize variable.\n\nIt\u0027s really just a style change, not an optimization, but for the\nrecord, the numbers don\u0027t show a strong change either way, and could\neasily just be noise.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   667MB/s ± 0%   665MB/s ± 0%    ~     (p\u003d0.190 n\u003d5+4)\nWordsEncode1e2-8  85.1MB/s ± 0%  85.0MB/s ± 0%    ~     (p\u003d0.556 n\u003d5+4)\nWordsEncode1e3-8   235MB/s ± 0%   234MB/s ± 2%    ~     (p\u003d0.690 n\u003d5+5)\nWordsEncode1e4-8   234MB/s ± 0%   233MB/s ± 0%    ~     (p\u003d0.151 n\u003d5+5)\nWordsEncode1e5-8   216MB/s ± 0%   214MB/s ± 1%  -0.61%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   258MB/s ± 0%   258MB/s ± 0%  -0.29%  (p\u003d0.024 n\u003d5+5)\nRandomEncode-8    13.2GB/s ± 1%  13.1GB/s ± 1%    ~     (p\u003d0.056 n\u003d5+5)\n_ZFlat0-8          629MB/s ± 0%   630MB/s ± 0%    ~     (p\u003d0.111 n\u003d5+4)\n_ZFlat1-8          325MB/s ± 0%   326MB/s ± 0%  +0.27%  (p\u003d0.016 n\u003d5+4)\n_ZFlat2-8         13.7GB/s ± 5%  13.9GB/s ± 1%    ~     (p\u003d0.310 n\u003d5+5)\n_ZFlat3-8          177MB/s ± 0%   177MB/s ± 1%    ~     (p\u003d0.690 n\u003d5+5)\n_ZFlat4-8         6.15GB/s ± 2%  6.19GB/s ± 1%    ~     (p\u003d0.222 n\u003d5+5)\n_ZFlat5-8          614MB/s ± 0%   615MB/s ± 0%    ~     (p\u003d0.310 n\u003d5+5)\n_ZFlat6-8          231MB/s ± 2%   231MB/s ± 0%    ~     (p\u003d0.690 n\u003d5+5)\n_ZFlat7-8          215MB/s ± 2%   215MB/s ± 1%    ~     (p\u003d0.222 n\u003d5+5)\n_ZFlat8-8          246MB/s ± 0%   246MB/s ± 0%    ~     (p\u003d0.190 n\u003d4+5)\n_ZFlat9-8          202MB/s ± 0%   202MB/s ± 0%    ~     (p\u003d0.683 n\u003d4+5)\n_ZFlat10-8         794MB/s ± 2%   803MB/s ± 0%  +1.13%  (p\u003d0.008 n\u003d5+5)\n_ZFlat11-8         350MB/s ± 0%   351MB/s ± 0%  +0.25%  (p\u003d0.032 n\u003d4+5)\n"
    },
    {
      "commit": "0c43e98dfe3f41a99362fa041990a047da508eee",
      "tree": "86464617753d99aff159a62779c3ec55d283e753",
      "parents": [
        "62bb72da9a2bbb2139731f3da2659852bd15df18"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 12:17:41 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 12:17:41 2016 +1000"
      },
      "message": "Add comment that dst and src must not overlap.\n"
    },
    {
      "commit": "62bb72da9a2bbb2139731f3da2659852bd15df18",
      "tree": "3d6378ba6b9baf19c7def0803b28587eb61ddc60",
      "parents": [
        "d8211ff0ee1575ab421cd4b9504bfe1d7c7d7f76"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 12:05:56 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 12:05:56 2016 +1000"
      },
      "message": "Write the encoder\u0027s emitLiteral in asm.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   665MB/s ± 0%   667MB/s ± 0%  +0.35%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e2-8  83.8MB/s ± 1%  85.1MB/s ± 0%  +1.47%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e3-8   231MB/s ± 1%   235MB/s ± 0%  +1.81%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   232MB/s ± 1%   234MB/s ± 0%  +0.78%  (p\u003d0.016 n\u003d5+5)\nWordsEncode1e5-8   212MB/s ± 1%   216MB/s ± 0%  +1.55%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   257MB/s ± 0%   258MB/s ± 0%  +0.68%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.2GB/s ± 1%  13.2GB/s ± 1%    ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat0-8          629MB/s ± 0%   629MB/s ± 0%    ~     (p\u003d0.690 n\u003d5+5)\n_ZFlat1-8          324MB/s ± 0%   325MB/s ± 0%    ~     (p\u003d0.222 n\u003d5+5)\n_ZFlat2-8         13.9GB/s ± 1%  13.7GB/s ± 5%    ~     (p\u003d0.310 n\u003d5+5)\n_ZFlat3-8          176MB/s ± 1%   177MB/s ± 0%    ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat4-8         6.12GB/s ± 0%  6.15GB/s ± 2%    ~     (p\u003d0.151 n\u003d5+5)\n_ZFlat5-8          614MB/s ± 0%   614MB/s ± 0%    ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat6-8          230MB/s ± 0%   231MB/s ± 2%    ~     (p\u003d0.151 n\u003d5+5)\n_ZFlat7-8          214MB/s ± 0%   215MB/s ± 2%    ~     (p\u003d0.151 n\u003d5+5)\n_ZFlat8-8          244MB/s ± 0%   246MB/s ± 0%  +0.71%  (p\u003d0.016 n\u003d5+4)\n_ZFlat9-8          200MB/s ± 0%   202MB/s ± 0%  +0.95%  (p\u003d0.016 n\u003d5+4)\n_ZFlat10-8         797MB/s ± 0%   794MB/s ± 2%    ~     (p\u003d1.000 n\u003d5+5)\n_ZFlat11-8         351MB/s ± 1%   350MB/s ± 0%    ~     (p\u003d0.730 n\u003d5+4)\n"
    },
    {
      "commit": "d8211ff0ee1575ab421cd4b9504bfe1d7c7d7f76",
      "tree": "56f1b4b8c0c20cb65ddff5530ac36fb0ba5e56b9",
      "parents": [
        "4f2f9a13dd7ed6975c4470af560e8ff2f93b127d"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 11:44:23 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 11:48:21 2016 +1000"
      },
      "message": "Write the encoder\u0027s emitCopy in asm.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   690MB/s ± 0%   665MB/s ± 0%  -3.64%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e2-8  83.7MB/s ± 1%  83.8MB/s ± 1%    ~     (p\u003d0.421 n\u003d5+5)\nWordsEncode1e3-8   230MB/s ± 1%   231MB/s ± 1%    ~     (p\u003d0.421 n\u003d5+5)\nWordsEncode1e4-8   233MB/s ± 1%   232MB/s ± 1%    ~     (p\u003d0.151 n\u003d5+5)\nWordsEncode1e5-8   212MB/s ± 0%   212MB/s ± 1%    ~     (p\u003d1.000 n\u003d5+5)\nWordsEncode1e6-8   255MB/s ± 0%   257MB/s ± 0%  +0.57%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.2GB/s ± 1%  13.2GB/s ± 1%    ~     (p\u003d0.151 n\u003d5+5)\n_ZFlat0-8          623MB/s ± 0%   629MB/s ± 0%  +0.93%  (p\u003d0.008 n\u003d5+5)\n_ZFlat1-8          319MB/s ± 1%   324MB/s ± 0%  +1.65%  (p\u003d0.008 n\u003d5+5)\n_ZFlat2-8         13.9GB/s ± 1%  13.9GB/s ± 1%    ~     (p\u003d0.548 n\u003d5+5)\n_ZFlat3-8          176MB/s ± 0%   176MB/s ± 1%    ~     (p\u003d0.690 n\u003d5+5)\n_ZFlat4-8         6.05GB/s ± 0%  6.12GB/s ± 0%  +1.20%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          603MB/s ± 0%   614MB/s ± 0%  +1.71%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          228MB/s ± 0%   230MB/s ± 0%  +0.83%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          212MB/s ± 0%   214MB/s ± 0%  +0.74%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          242MB/s ± 0%   244MB/s ± 0%  +0.99%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          199MB/s ± 1%   200MB/s ± 0%  +0.57%  (p\u003d0.008 n\u003d5+5)\n_ZFlat10-8         796MB/s ± 1%   797MB/s ± 0%    ~     (p\u003d1.000 n\u003d5+5)\n_ZFlat11-8         348MB/s ± 0%   351MB/s ± 1%    ~     (p\u003d0.056 n\u003d5+5)\n\nI\u0027m not overly worried about the WordsEncode1e1-8 change: the time/op is\naround 15 nanoseconds, which is tiny. In comparison, _ZFlat0-8 takes\naround 163 microseconds (note µs not ns).\n"
    },
    {
      "commit": "4f2f9a13dd7ed6975c4470af560e8ff2f93b127d",
      "tree": "5bd7b975e0f494658817adf743ac6a6286524252",
      "parents": [
        "1f4d362d6d1f2f31bf10a5a7075f021dea6a225d"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 11:26:04 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 11:26:04 2016 +1000"
      },
      "message": "Write the encoder\u0027s extendMatch in asm.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   678MB/s ± 0%   690MB/s ± 0%   +1.79%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e2-8  87.5MB/s ± 0%  83.7MB/s ± 1%   -4.26%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e3-8   257MB/s ± 1%   230MB/s ± 1%  -10.41%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e4-8   247MB/s ± 1%   233MB/s ± 1%   -5.56%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   186MB/s ± 0%   212MB/s ± 0%  +14.36%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e6-8   211MB/s ± 0%   255MB/s ± 0%  +20.82%  (p\u003d0.008 n\u003d5+5)\nRandomEncode-8    13.1GB/s ± 2%  13.2GB/s ± 1%     ~     (p\u003d0.222 n\u003d5+5)\n_ZFlat0-8          433MB/s ± 0%   623MB/s ± 0%  +43.92%  (p\u003d0.008 n\u003d5+5)\n_ZFlat1-8          276MB/s ± 0%   319MB/s ± 1%  +15.42%  (p\u003d0.008 n\u003d5+5)\n_ZFlat2-8         13.8GB/s ± 1%  13.9GB/s ± 1%     ~     (p\u003d0.222 n\u003d5+5)\n_ZFlat3-8          170MB/s ± 0%   176MB/s ± 0%   +3.55%  (p\u003d0.008 n\u003d5+5)\n_ZFlat4-8         3.09GB/s ± 1%  6.05GB/s ± 0%  +96.00%  (p\u003d0.008 n\u003d5+5)\n_ZFlat5-8          427MB/s ± 1%   603MB/s ± 0%  +41.35%  (p\u003d0.008 n\u003d5+5)\n_ZFlat6-8          190MB/s ± 0%   228MB/s ± 0%  +20.24%  (p\u003d0.008 n\u003d5+5)\n_ZFlat7-8          182MB/s ± 0%   212MB/s ± 0%  +16.87%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          200MB/s ± 0%   242MB/s ± 0%  +20.97%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          175MB/s ± 0%   199MB/s ± 1%  +13.74%  (p\u003d0.008 n\u003d5+5)\n_ZFlat10-8         507MB/s ± 0%   796MB/s ± 1%  +56.83%  (p\u003d0.008 n\u003d5+5)\n_ZFlat11-8         278MB/s ± 0%   348MB/s ± 0%  +25.09%  (p\u003d0.008 n\u003d5+5)\n\nname           old time/op  new time/op  delta\nExtendMatch-8  16.5µs ± 1%   7.8µs ± 1%  -52.93%  (p\u003d0.008 n\u003d5+5)\n"
    },
    {
      "commit": "1f4d362d6d1f2f31bf10a5a7075f021dea6a225d",
      "tree": "be5b2d1e5a2d3fd2729ef1de67eda087974e4e93",
      "parents": [
        "bd94318f58a5b6f6c8af0f67bb1788c8d2d530a3"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 10:40:18 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 10:40:18 2016 +1000"
      },
      "message": "Clarify the emitLiteral and emitCopy preconditions.\n\nThis allows deleting some redundant code.\n\nname              old speed      new speed      delta\nWordsEncode1e1-8   679MB/s ± 0%   678MB/s ± 0%    ~     (p\u003d0.087 n\u003d5+5)\nWordsEncode1e2-8  87.5MB/s ± 0%  87.5MB/s ± 0%    ~     (p\u003d0.579 n\u003d5+5)\nWordsEncode1e3-8   258MB/s ± 0%   257MB/s ± 1%    ~     (p\u003d1.000 n\u003d5+5)\nWordsEncode1e4-8   243MB/s ± 0%   247MB/s ± 1%  +1.77%  (p\u003d0.008 n\u003d5+5)\nWordsEncode1e5-8   185MB/s ± 1%   186MB/s ± 0%    ~     (p\u003d0.095 n\u003d5+5)\nWordsEncode1e6-8   210MB/s ± 2%   211MB/s ± 0%    ~     (p\u003d0.222 n\u003d5+5)\nRandomEncode-8    13.2GB/s ± 1%  13.1GB/s ± 2%    ~     (p\u003d0.286 n\u003d4+5)\n_ZFlat0-8          429MB/s ± 0%   433MB/s ± 0%  +0.83%  (p\u003d0.016 n\u003d4+5)\n_ZFlat1-8          274MB/s ± 0%   276MB/s ± 0%  +0.91%  (p\u003d0.016 n\u003d4+5)\n_ZFlat2-8         13.6GB/s ± 2%  13.8GB/s ± 1%    ~     (p\u003d0.095 n\u003d5+5)\n_ZFlat3-8          169MB/s ± 0%   170MB/s ± 0%  +0.38%  (p\u003d0.032 n\u003d4+5)\n_ZFlat4-8         3.09GB/s ± 0%  3.09GB/s ± 1%    ~     (p\u003d0.905 n\u003d4+5)\n_ZFlat5-8          419MB/s ± 5%   427MB/s ± 1%  +1.83%  (p\u003d0.032 n\u003d5+5)\n_ZFlat6-8          189MB/s ± 1%   190MB/s ± 0%  +0.68%  (p\u003d0.016 n\u003d4+5)\n_ZFlat7-8          181MB/s ± 1%   182MB/s ± 0%  +0.60%  (p\u003d0.008 n\u003d5+5)\n_ZFlat8-8          199MB/s ± 1%   200MB/s ± 0%  +0.68%  (p\u003d0.008 n\u003d5+5)\n_ZFlat9-8          175MB/s ± 0%   175MB/s ± 0%    ~     (p\u003d0.095 n\u003d5+5)\n_ZFlat10-8         507MB/s ± 0%   507MB/s ± 0%    ~     (p\u003d0.222 n\u003d5+5)\n_ZFlat11-8         277MB/s ± 0%   278MB/s ± 0%  +0.38%  (p\u003d0.008 n\u003d5+5)\n"
    },
    {
      "commit": "bd94318f58a5b6f6c8af0f67bb1788c8d2d530a3",
      "tree": "4cb3880b6b610fd333252df9392fac21112555ee",
      "parents": [
        "774a97396f7bfa4165e9dcf4bfa0747ea3edcc02"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 10:29:32 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 23 10:29:32 2016 +1000"
      },
      "message": "Add some more encoder tests.\n"
    },
    {
      "commit": "774a97396f7bfa4165e9dcf4bfa0747ea3edcc02",
      "tree": "0418f0fbf6e610922e22b445218080e111b1e801",
      "parents": [
        "3588d1dd84953d8f7effbfbde1fe352cfdf13c65"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 16 15:15:34 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 16 15:15:34 2016 +1000"
      },
      "message": "Remove the no-longer-used maxOffset constant.\n\nIt was no longer used as of commit 8939696c \"Use the same encoding\nalgorithm as C++ snappy\".\n"
    },
    {
      "commit": "3588d1dd84953d8f7effbfbde1fe352cfdf13c65",
      "tree": "754387c739e838672c9e2840b3018f030a42e536",
      "parents": [
        "fa0b0e6289e9a08f133cb431fc5fca8e2265767c"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 14 18:47:10 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 14 18:47:10 2016 +1000"
      },
      "message": "Add appengine and noasm build tags.\n\nThe general suggestion to use a noasm tag is by Klaus Post at\nhttps://groups.google.com/d/msg/golang-dev/CeKX81B3WdQ/2mq-eY0VAgAJ\n"
    },
    {
      "commit": "fa0b0e6289e9a08f133cb431fc5fca8e2265767c",
      "tree": "74f69baf306c34e675b296a515054e27bf00d157",
      "parents": [
        "ef80b33e873821cff33038ae16c444717218cdb1"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Apr 12 10:37:28 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Apr 12 10:37:28 2016 +1000"
      },
      "message": "Eliminate some bounds checks.\n\nIt seems like a small win:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-4     465.69       471.77       1.01x\nBenchmarkWordsEncode1e2-4     60.18        60.27        1.00x\nBenchmarkWordsEncode1e3-4     174.42       176.26       1.01x\nBenchmarkWordsEncode1e4-4     172.40       175.95       1.02x\nBenchmarkWordsEncode1e5-4     134.42       134.86       1.00x\nBenchmarkWordsEncode1e6-4     153.09       154.03       1.01x\nBenchmarkRandomEncode-4       6504.88      6553.55      1.01x\nBenchmark_ZFlat0-4            310.55       313.22       1.01x\nBenchmark_ZFlat1-4            198.43       199.73       1.01x\nBenchmark_ZFlat2-4            7915.02      8052.65      1.02x\nBenchmark_ZFlat3-4            123.07       123.53       1.00x\nBenchmark_ZFlat4-4            2220.35      2230.80      1.00x\nBenchmark_ZFlat5-4            307.05       309.51       1.01x\nBenchmark_ZFlat6-4            136.35       137.19       1.01x\nBenchmark_ZFlat7-4            130.67       131.33       1.01x\nBenchmark_ZFlat8-4            143.17       144.47       1.01x\nBenchmark_ZFlat9-4            125.40       125.85       1.00x\nBenchmark_ZFlat10-4           364.30       370.35       1.02x\nBenchmark_ZFlat11-4           200.04       199.80       1.00x\n"
    },
    {
      "commit": "ef80b33e873821cff33038ae16c444717218cdb1",
      "tree": "721984412cce58dfa1ce59896c80f23ce36b2614",
      "parents": [
        "70f093abd7c11f120162d8f77684deadbe37bbf2"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Apr 11 12:06:28 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Apr 11 12:06:28 2016 +1000"
      },
      "message": "Change the encoder\u0027s hash table values from int32 to uint16.\n\nDoing s/int32/uint16/ in \"var table [maxTableSize]int32\" saves 32 KiB of stack\nspace that needed zero\u0027ing. maxTableSize is 1\u003c\u003c14, or 16384.\n\nWe couldn\u0027t do this before, in commit cc71ae7c, since we didn\u0027t have\nmaxBlockSize \u003d 65536 at the time.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-4     468.81       465.82       0.99x\nBenchmarkWordsEncode1e2-4     32.62        60.23        1.85x\nBenchmarkWordsEncode1e3-4     138.36       174.61       1.26x\nBenchmarkWordsEncode1e4-4     170.79       172.43       1.01x\nBenchmarkWordsEncode1e5-4     131.02       134.25       1.02x\nBenchmarkWordsEncode1e6-4     149.33       153.05       1.02x\nBenchmarkRandomEncode-4       5933.57      6846.03      1.15x\nBenchmark_ZFlat0-4            306.98       310.74       1.01x\nBenchmark_ZFlat1-4            194.65       198.74       1.02x\nBenchmark_ZFlat2-4            6784.51      8110.98      1.20x\nBenchmark_ZFlat3-4            64.06        123.43       1.93x\nBenchmark_ZFlat4-4            2102.05      2224.84      1.06x\nBenchmark_ZFlat5-4            303.89       307.19       1.01x\nBenchmark_ZFlat6-4            132.74       136.37       1.03x\nBenchmark_ZFlat7-4            126.50       130.72       1.03x\nBenchmark_ZFlat8-4            140.35       143.61       1.02x\nBenchmark_ZFlat9-4            121.73       125.62       1.03x\nBenchmark_ZFlat10-4           360.89       365.62       1.01x\nBenchmark_ZFlat11-4           195.92       199.96       1.02x\n"
    },
    {
      "commit": "70f093abd7c11f120162d8f77684deadbe37bbf2",
      "tree": "f681f2df1ecb3d22021aa210e9a6fb8066f8c7f1",
      "parents": [
        "9bc0b5ad10791df6db28196b243094a7694ef806"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 10 16:29:43 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 10 16:29:43 2016 +1000"
      },
      "message": "Use a more compressible golden input for the tests.\n\nThe testdata/Mark.Twain-Tom.Sawyer.txt file is the first chapter of the\nsrc/compress/testdata/Mark.Twain-Tom.Sawyer.txt file in the Go repo.\n\nThe rawsnappy version was generated by cmd/snappytool in this repo,\nusing the C++ snappy library as of commit d53de187 (2016-04-05).\n"
    },
    {
      "commit": "9bc0b5ad10791df6db28196b243094a7694ef806",
      "tree": "4a40a1f3f22a84490b5c8e0ca67f5f6f55502aa1",
      "parents": [
        "cef980a12b316c5b7e5bb3a8e168eb43ae999a88"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 10 16:02:28 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 10 16:02:28 2016 +1000"
      },
      "message": "Make heuristic match skipping more aggressive.\n\nThis is the Go equivalent of an algorithmic change in the C++ snappy\ncode:\nhttps://github.com/google/snappy/commit/d53de18799418e113e44444252a39b12a0e4e0cc\n\nThe discussion is at:\nhttps://groups.google.com/d/topic/snappy-compression/3Qa3fASLkNA/discussion\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-8     680.57       679.12       1.00x\nBenchmarkWordsEncode1e2-8     49.90        49.65        0.99x\nBenchmarkWordsEncode1e3-8     213.28       212.75       1.00x\nBenchmarkWordsEncode1e4-8     247.05       245.76       0.99x\nBenchmarkWordsEncode1e5-8     180.68       179.95       1.00x\nBenchmarkWordsEncode1e6-8     205.65       204.83       1.00x\nBenchmarkRandomEncode-8       5678.83      11217.33     1.98x\nBenchmark_ZFlat0-8            422.83       423.18       1.00x\nBenchmark_ZFlat1-8            269.60       271.01       1.01x\nBenchmark_ZFlat2-8            5517.16      11517.40     2.09x\nBenchmark_ZFlat3-8            92.47        92.39        1.00x\nBenchmark_ZFlat4-8            954.63       2947.73      3.09x\nBenchmark_ZFlat5-8            419.71       419.87       1.00x\nBenchmark_ZFlat6-8            184.13       183.45       1.00x\nBenchmark_ZFlat7-8            175.83       175.89       1.00x\nBenchmark_ZFlat8-8            193.49       193.84       1.00x\nBenchmark_ZFlat9-8            169.02       168.59       1.00x\nBenchmark_ZFlat10-8           500.19       499.85       1.00x\nBenchmark_ZFlat11-8           271.20       270.60       1.00x\n"
    },
    {
      "commit": "cef980a12b316c5b7e5bb3a8e168eb43ae999a88",
      "tree": "6617cf3fd72b6f3d4eb648ed646eeee1cbb01b17",
      "parents": [
        "6218a584d0b00caa84f10acfb2eeb5e043b80706"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 07 15:15:05 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 07 15:15:05 2016 +1000"
      },
      "message": "Add more commentary to minNonLiteralBlockSize.\n"
    },
    {
      "commit": "6218a584d0b00caa84f10acfb2eeb5e043b80706",
      "tree": "9c3bc10902a3c4a51031847642af1cdafc9ae2a5",
      "parents": [
        "a2aa89c177511a0881193da2623539494a961109"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 07 15:09:02 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 07 15:09:02 2016 +1000"
      },
      "message": "Clarify the semantics of minNonLiteralBlockSize.\n"
    },
    {
      "commit": "a2aa89c177511a0881193da2623539494a961109",
      "tree": "b3e86a90867adf8e027996ad57afba7aeee9c12d",
      "parents": [
        "857ad66e003f466b64f9055849bab122efd4c87a"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 07 14:50:07 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Apr 07 14:50:07 2016 +1000"
      },
      "message": "Add a TestSameEncodingAsCppShortCopies test.\n"
    },
    {
      "commit": "857ad66e003f466b64f9055849bab122efd4c87a",
      "tree": "b6561941062908e4fc2ba829ee2b74c4c954f067",
      "parents": [
        "3675542200b9752da8f113251b47f0d5b372f414"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Apr 04 10:05:40 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Apr 04 10:05:40 2016 +1000"
      },
      "message": "Add gc build tag for the asm code.\n\nFixes #27.\n"
    },
    {
      "commit": "3675542200b9752da8f113251b47f0d5b372f414",
      "tree": "06c76dd1c7be87aad5943014bf45da4db384b7ff",
      "parents": [
        "0e8b256be2776b48cc0a2a11e5ae228f57471078"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 23:08:03 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 23:08:03 2016 +1000"
      },
      "message": "Don\u0027t allow EOF in the middle of a framing chunk.\n"
    },
    {
      "commit": "0e8b256be2776b48cc0a2a11e5ae228f57471078",
      "tree": "c2329452e6f023284e00171fe2819c78e60a4ace",
      "parents": [
        "aca045a2df1eccb72d28abc3066fd19a8fe57a14"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 22:40:17 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 22:40:17 2016 +1000"
      },
      "message": "Fix a too-long uncompressed frame chunk causing a panic.\n\nIt should return an error instead.\n\nFixes #26.\n"
    },
    {
      "commit": "aca045a2df1eccb72d28abc3066fd19a8fe57a14",
      "tree": "13be98d1ce61db0fe2943d3b96f9979363691460",
      "parents": [
        "8939696c2214cde5dda896a76f5bf56e80a16855"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 20:56:43 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 20:56:43 2016 +1000"
      },
      "message": "Clarify when goEncoderShouldMatchCppEncoder.\n"
    },
    {
      "commit": "8939696c2214cde5dda896a76f5bf56e80a16855",
      "tree": "9a707e11a9a60adc1614203ace38e099a2c20cd6",
      "parents": [
        "ebebc717213d6f16fd33dd6a2f74e776af6493c3"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 11:18:01 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 11:18:01 2016 +1000"
      },
      "message": "Use the same encoding algorithm as C++ snappy.\n\nWhen encoding the benchmark files, the output size is smaller:\n\nlen(in)\told_len(out)\tnew_len(out)\tnew/old_ratio\tdescription\n102400\t23488\t22842\t0.97\thtml\n702087\t346345\t335387\t0.97\turls\n123093\t123034\t123034\t1.00\tjpg\n200\t144\t146\t1.01\tjpg_200\n102400\t83786\t83817\t1.00\tpdf\n409600\t95095\t92221\t0.97\thtml4\n152089\t91386\t88017\t0.96\ttxt1\n125179\t80526\t77525\t0.96\ttxt2\n426754\t244658\t234392\t0.96\ttxt3\n481861\t331356\t319097\t0.96\ttxt4\n118588\t24789\t23295\t0.94\tpb\n184320\t74129\t69526\t0.94\tgaviota\n\nOn GOARCH\u003damd64, the throughput numbers are also faster:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-8     674.93       681.22       1.01x\nBenchmarkWordsEncode1e2-8     47.92        49.91        1.04x\nBenchmarkWordsEncode1e3-8     189.48       213.64       1.13x\nBenchmarkWordsEncode1e4-8     193.17       245.31       1.27x\nBenchmarkWordsEncode1e5-8     151.44       178.84       1.18x\nBenchmarkWordsEncode1e6-8     180.63       203.74       1.13x\nBenchmarkRandomEncode-8       4700.25      5711.91      1.22x\nBenchmark_ZFlat0-8            372.12       422.42       1.14x\nBenchmark_ZFlat1-8            187.62       270.16       1.44x\nBenchmark_ZFlat2-8            4891.26      5542.08      1.13x\nBenchmark_ZFlat3-8            86.16        92.53        1.07x\nBenchmark_ZFlat4-8            570.31       963.51       1.69x\nBenchmark_ZFlat5-8            366.84       418.91       1.14x\nBenchmark_ZFlat6-8            164.18       182.67       1.11x\nBenchmark_ZFlat7-8            155.23       175.64       1.13x\nBenchmark_ZFlat8-8            169.62       193.08       1.14x\nBenchmark_ZFlat9-8            149.43       168.62       1.13x\nBenchmark_ZFlat10-8           412.63       497.87       1.21x\nBenchmark_ZFlat11-8           247.98       269.43       1.09x\n"
    },
    {
      "commit": "ebebc717213d6f16fd33dd6a2f74e776af6493c3",
      "tree": "968795dcf9a69169698723df8b74d5765df12d0d",
      "parents": [
        "7ede8d1b136c90ae4e1bee23e8a36693adca8751"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 09:25:18 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 09:25:18 2016 +1000"
      },
      "message": "Raise the \"always encode as literal\" size threshold from 4 to 14.\n\nThis isn\u0027t an optimization per se, although it does trade off the\n\"encode 10 bytes\" benchmark to favor speed over output size. The point\nof this commit is to move closer to what the C++ snappy code does.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-8     5.77         674.93       116.97x\nBenchmarkWordsEncode1e2-8     47.96        47.92        1.00x\nBenchmarkWordsEncode1e3-8     190.33       189.48       1.00x\nBenchmarkWordsEncode1e4-8     190.25       193.17       1.02x\nBenchmarkWordsEncode1e5-8     150.65       151.44       1.01x\nBenchmarkWordsEncode1e6-8     180.11       180.63       1.00x\nBenchmarkRandomEncode-8       4782.70      4700.25      0.98x\nBenchmark_ZFlat0-8            372.49       372.12       1.00x\nBenchmark_ZFlat1-8            186.49       187.62       1.01x\nBenchmark_ZFlat2-8            4979.47      4891.26      0.98x\nBenchmark_ZFlat3-8            85.76        86.16        1.00x\nBenchmark_ZFlat4-8            566.31       570.31       1.01x\nBenchmark_ZFlat5-8            366.01       366.84       1.00x\nBenchmark_ZFlat6-8            162.13       164.18       1.01x\nBenchmark_ZFlat7-8            153.69       155.23       1.01x\nBenchmark_ZFlat8-8            167.91       169.62       1.01x\nBenchmark_ZFlat9-8            147.71       149.43       1.01x\nBenchmark_ZFlat10-8           414.06       412.63       1.00x\nBenchmark_ZFlat11-8           248.87       247.98       1.00x\n"
    },
    {
      "commit": "7ede8d1b136c90ae4e1bee23e8a36693adca8751",
      "tree": "a457aba5987a9b017e6cb37311692874788aa371",
      "parents": [
        "d1f56d22221367c22b310feca1ba49a062f3d646"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 08:30:29 2016 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Apr 03 08:30:29 2016 +1000"
      },
      "message": "Eliminate some bounds checks in the encoder.\n\nAs per\nhttps://groups.google.com/d/msg/golang-dev/jVP6h21OyL8/Syhfot9XBQAJ,\nrecent versions of the gc compiler can optimize:\n\nfunc load32(b []byte, i int32) uint32 {\n  b \u003d b[i : i+4 : len(b)]\n  return uint32(b[0]) | etc | uint32(b[3])\u003c\u003c24\n}\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-8     5.78         5.77         1.00x\nBenchmarkWordsEncode1e2-8     47.22        47.96        1.02x\nBenchmarkWordsEncode1e3-8     183.53       190.33       1.04x\nBenchmarkWordsEncode1e4-8     198.95       190.25       0.96x\nBenchmarkWordsEncode1e5-8     144.60       150.65       1.04x\nBenchmarkWordsEncode1e6-8     172.11       180.11       1.05x\nBenchmarkRandomEncode-8       4547.98      4782.70      1.05x\nBenchmark_ZFlat0-8            359.18       372.49       1.04x\nBenchmark_ZFlat1-8            181.57       186.49       1.03x\nBenchmark_ZFlat2-8            4566.75      4979.47      1.09x\nBenchmark_ZFlat3-8            86.00        85.76        1.00x\nBenchmark_ZFlat4-8            558.08       566.31       1.01x\nBenchmark_ZFlat5-8            354.18       366.01       1.03x\nBenchmark_ZFlat6-8            156.20       162.13       1.04x\nBenchmark_ZFlat7-8            147.76       153.69       1.04x\nBenchmark_ZFlat8-8            162.49       167.91       1.03x\nBenchmark_ZFlat9-8            142.33       147.71       1.04x\nBenchmark_ZFlat10-8           401.93       414.06       1.03x\nBenchmark_ZFlat11-8           235.94       248.87       1.05x\n"
    },
    {
      "commit": "d1f56d22221367c22b310feca1ba49a062f3d646",
      "tree": "a81053aa146b5bffb46d53d1d50895570625d95f",
      "parents": [
        "5f1c01d9f64b941dd9582c638279d046eda6ca31"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 02 16:22:40 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Apr 02 16:22:40 2016 +1100"
      },
      "message": "Encode copies of length 65, 66 or 67 as 5 bytes, not 6.\n\nThe benchmarks don\u0027t show a big change either way, but the output is\nshorter, and it matches what the C++ snappy code does.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-8     5.77         5.77         1.00x\nBenchmarkWordsEncode1e2-8     47.15        47.26        1.00x\nBenchmarkWordsEncode1e3-8     180.77       183.25       1.01x\nBenchmarkWordsEncode1e4-8     202.01       198.96       0.98x\nBenchmarkWordsEncode1e5-8     145.66       144.68       0.99x\nBenchmarkWordsEncode1e6-8     174.12       172.31       0.99x\nBenchmarkRandomEncode-8       4522.91      4495.78      0.99x\nBenchmark_ZFlat0-8            359.70       359.79       1.00x\nBenchmark_ZFlat1-8            181.18       181.82       1.00x\nBenchmark_ZFlat2-8            4612.52      4557.46      0.99x\nBenchmark_ZFlat3-8            85.65        84.82        0.99x\nBenchmark_ZFlat4-8            559.51       558.52       1.00x\nBenchmark_ZFlat5-8            354.88       352.91       0.99x\nBenchmark_ZFlat6-8            156.14       156.26       1.00x\nBenchmark_ZFlat7-8            148.18       148.12       1.00x\nBenchmark_ZFlat8-8            162.68       162.21       1.00x\nBenchmark_ZFlat9-8            141.81       142.32       1.00x\nBenchmark_ZFlat10-8           399.79       401.94       1.01x\nBenchmark_ZFlat11-8           237.43       235.91       0.99x\n"
    },
    {
      "commit": "5f1c01d9f64b941dd9582c638279d046eda6ca31",
      "tree": "5a6a9de0fbf2069d11709eded2c7abe614ca9d0e",
      "parents": [
        "427fb6fc07997f43afa32f35e850833760e489a7"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Mar 04 16:48:22 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Mar 04 16:48:22 2016 +1100"
      },
      "message": "Optimize a 16-byte load and store.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     528.93       528.93       1.00x\nBenchmarkWordsDecode1e2-8     983.60       999.00       1.02x\nBenchmarkWordsDecode1e3-8     1474.03      1513.22      1.03x\nBenchmarkWordsDecode1e4-8     1523.38      1561.36      1.02x\nBenchmarkWordsDecode1e5-8     792.34       800.00       1.01x\nBenchmarkWordsDecode1e6-8     881.58       885.13       1.00x\nBenchmark_UFlat0-8            2168.73      2224.25      1.03x\nBenchmark_UFlat1-8            1431.99      1446.11      1.01x\nBenchmark_UFlat2-8            15392.46     15301.72     0.99x\nBenchmark_UFlat3-8            1825.26      1841.57      1.01x\nBenchmark_UFlat4-8            10885.32     11384.32     1.05x\nBenchmark_UFlat5-8            1955.55      2002.59      1.02x\nBenchmark_UFlat6-8            833.99       829.35       0.99x\nBenchmark_UFlat7-8            794.80       793.35       1.00x\nBenchmark_UFlat8-8            859.01       854.84       1.00x\nBenchmark_UFlat9-8            731.84       726.50       0.99x\nBenchmark_UFlat10-8           2775.21      2898.57      1.04x\nBenchmark_UFlat11-8           1032.75      1032.47      1.00x\n"
    },
    {
      "commit": "427fb6fc07997f43afa32f35e850833760e489a7",
      "tree": "ab6c116a071e3d0db9c79e88031040f750f13abd",
      "parents": [
        "4c1fc8e426266f00229956994142877543e8b514"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:30:25 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:30:25 2016 +1100"
      },
      "message": "Optimize asm for decoding copy fragments some more.\n\nRelative to the previous commit:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     518.80       508.74       0.98x\nBenchmarkWordsDecode1e2-8     871.43       962.52       1.10x\nBenchmarkWordsDecode1e3-8     1411.32      1435.51      1.02x\nBenchmarkWordsDecode1e4-8     1469.60      1514.02      1.03x\nBenchmarkWordsDecode1e5-8     771.07       807.73       1.05x\nBenchmarkWordsDecode1e6-8     872.19       892.24       1.02x\nBenchmark_UFlat0-8            1129.79      2200.22      1.95x\nBenchmark_UFlat1-8            1075.37      1446.09      1.34x\nBenchmark_UFlat2-8            15617.45     14706.88     0.94x\nBenchmark_UFlat3-8            1438.15      1787.82      1.24x\nBenchmark_UFlat4-8            4838.37      10683.24     2.21x\nBenchmark_UFlat5-8            1075.46      1965.33      1.83x\nBenchmark_UFlat6-8            811.70       833.52       1.03x\nBenchmark_UFlat7-8            781.87       792.85       1.01x\nBenchmark_UFlat8-8            819.38       854.75       1.04x\nBenchmark_UFlat9-8            724.43       730.21       1.01x\nBenchmark_UFlat10-8           1193.70      2775.98      2.33x\nBenchmark_UFlat11-8           879.15       1037.94      1.18x\n\nAs with previous recent commits, the new asm code is covered by existing\ntests: TestDecode, TestDecodeLengthOffset and TestDecodeGoldenInput.\nThere is also a new test for the slowForwardCopy algorithm.\n\nAs a data point, the \"new MB/s\" numbers are now in the same ballpark as\nthe benchmark numbers that I get from the C++ snappy implementation on\nthe same machine:\n\nBM_UFlat/0   2.4GB/s    html\nBM_UFlat/1   1.4GB/s    urls\nBM_UFlat/2   21.1GB/s   jpg\nBM_UFlat/3   1.5GB/s    jpg_200\nBM_UFlat/4   10.2GB/s   pdf\nBM_UFlat/5   2.1GB/s    html4\nBM_UFlat/6   990.6MB/s  txt1\nBM_UFlat/7   930.1MB/s  txt2\nBM_UFlat/8   1.0GB/s    txt3\nBM_UFlat/9   849.7MB/s  txt4\nBM_UFlat/10  2.9GB/s    pb\nBM_UFlat/11  1.2GB/s    gaviota\n\nAs another data point, here is the amd64 asm code as of this commit\ncompared to the most recent pure Go implementation, revision 03ee571c:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     498.83       508.74       1.02x\nBenchmarkWordsDecode1e2-8     445.12       962.52       2.16x\nBenchmarkWordsDecode1e3-8     530.29       1435.51      2.71x\nBenchmarkWordsDecode1e4-8     361.08       1514.02      4.19x\nBenchmarkWordsDecode1e5-8     270.69       807.73       2.98x\nBenchmarkWordsDecode1e6-8     290.91       892.24       3.07x\nBenchmark_UFlat0-8            543.87       2200.22      4.05x\nBenchmark_UFlat1-8            449.84       1446.09      3.21x\nBenchmark_UFlat2-8            15511.96     14706.88     0.95x\nBenchmark_UFlat3-8            873.92       1787.82      2.05x\nBenchmark_UFlat4-8            2978.58      10683.24     3.59x\nBenchmark_UFlat5-8            536.04       1965.33      3.67x\nBenchmark_UFlat6-8            278.33       833.52       2.99x\nBenchmark_UFlat7-8            271.63       792.85       2.92x\nBenchmark_UFlat8-8            288.86       854.75       2.96x\nBenchmark_UFlat9-8            262.13       730.21       2.79x\nBenchmark_UFlat10-8           640.03       2775.98      4.34x\nBenchmark_UFlat11-8           356.37       1037.94      2.91x\n\nThe UFlat2 case is decoding a compressed JPEG file, a binary format, and\nso Snappy is not actually getting much extra compression. Decompression\ncollapses to not much more than repeatedly invoking runtime.memmove, so\noptimizing the snappy code per se doesn\u0027t have a huge impact on that\nparticular benchmark number.\n"
    },
    {
      "commit": "4c1fc8e426266f00229956994142877543e8b514",
      "tree": "933464732990407ee05625fb7d6a27a94188246c",
      "parents": [
        "8c7c9dec5965484f0a81268ce7985fe31e5d5955"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:21:48 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:21:48 2016 +1100"
      },
      "message": "Optimize asm for decoding copy fragments.\n\nRelative to the previous commit:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     518.05       518.80       1.00x\nBenchmarkWordsDecode1e2-8     776.28       871.43       1.12x\nBenchmarkWordsDecode1e3-8     995.41       1411.32      1.42x\nBenchmarkWordsDecode1e4-8     615.92       1469.60      2.39x\nBenchmarkWordsDecode1e5-8     453.95       771.07       1.70x\nBenchmarkWordsDecode1e6-8     453.74       872.19       1.92x\nBenchmark_UFlat0-8            863.12       1129.79      1.31x\nBenchmark_UFlat1-8            766.01       1075.37      1.40x\nBenchmark_UFlat2-8            15463.36     15617.45     1.01x\nBenchmark_UFlat3-8            1388.63      1438.15      1.04x\nBenchmark_UFlat4-8            4367.79      4838.37      1.11x\nBenchmark_UFlat5-8            844.84       1075.46      1.27x\nBenchmark_UFlat6-8            442.42       811.70       1.83x\nBenchmark_UFlat7-8            437.68       781.87       1.79x\nBenchmark_UFlat8-8            458.19       819.38       1.79x\nBenchmark_UFlat9-8            423.36       724.43       1.71x\nBenchmark_UFlat10-8           1023.05      1193.70      1.17x\nBenchmark_UFlat11-8           507.18       879.15       1.73x\n"
    },
    {
      "commit": "8c7c9dec5965484f0a81268ce7985fe31e5d5955",
      "tree": "3d28a7ffcd2b548265a6b8ed2c28f654439f9039",
      "parents": [
        "402436317ad8035a7246ee89492064f9e6cbb4ce"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:17:00 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:17:00 2016 +1100"
      },
      "message": "Optimize asm for decoding literal fragments.\n\nRelative to the previous commit:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     519.36       518.05       1.00x\nBenchmarkWordsDecode1e2-8     691.63       776.28       1.12x\nBenchmarkWordsDecode1e3-8     858.97       995.41       1.16x\nBenchmarkWordsDecode1e4-8     581.86       615.92       1.06x\nBenchmarkWordsDecode1e5-8     380.78       453.95       1.19x\nBenchmarkWordsDecode1e6-8     403.12       453.74       1.13x\nBenchmark_UFlat0-8            784.21       863.12       1.10x\nBenchmark_UFlat1-8            625.49       766.01       1.22x\nBenchmark_UFlat2-8            15366.67     15463.36     1.01x\nBenchmark_UFlat3-8            1321.47      1388.63      1.05x\nBenchmark_UFlat4-8            4338.83      4367.79      1.01x\nBenchmark_UFlat5-8            770.24       844.84       1.10x\nBenchmark_UFlat6-8            386.10       442.42       1.15x\nBenchmark_UFlat7-8            376.79       437.68       1.16x\nBenchmark_UFlat8-8            400.47       458.19       1.14x\nBenchmark_UFlat9-8            362.89       423.36       1.17x\nBenchmark_UFlat10-8           943.89       1023.05      1.08x\nBenchmark_UFlat11-8           493.98       507.18       1.03x\n"
    },
    {
      "commit": "402436317ad8035a7246ee89492064f9e6cbb4ce",
      "tree": "dd8f8cc885c4970b5ae71b48e1a618a52dfb67bc",
      "parents": [
        "03ee571cd35416c1f81a9f9ad7437493f356666d"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:03:02 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 17:03:02 2016 +1100"
      },
      "message": "Rewrite the core of the decoder in asm.\n\nThis is an experiment. A future commit may roll back this commit if it\nturns out that the complexity and inherent unsafety of asm code\noutweights the performance benefits.\n\nThe new asm code is covered by existing tests: TestDecode,\nTestDecodeLengthOffset and TestDecodeGoldenInput. These tests were\nchecked in by previous commits, to make it clear that they pass both\nbefore and after this new implementation. This commit is purely an\noptimization; there should be no other change in behavior.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     498.83       519.36       1.04x\nBenchmarkWordsDecode1e2-8     445.12       691.63       1.55x\nBenchmarkWordsDecode1e3-8     530.29       858.97       1.62x\nBenchmarkWordsDecode1e4-8     361.08       581.86       1.61x\nBenchmarkWordsDecode1e5-8     270.69       380.78       1.41x\nBenchmarkWordsDecode1e6-8     290.91       403.12       1.39x\nBenchmark_UFlat0-8            543.87       784.21       1.44x\nBenchmark_UFlat1-8            449.84       625.49       1.39x\nBenchmark_UFlat2-8            15511.96     15366.67     0.99x\nBenchmark_UFlat3-8            873.92       1321.47      1.51x\nBenchmark_UFlat4-8            2978.58      4338.83      1.46x\nBenchmark_UFlat5-8            536.04       770.24       1.44x\nBenchmark_UFlat6-8            278.33       386.10       1.39x\nBenchmark_UFlat7-8            271.63       376.79       1.39x\nBenchmark_UFlat8-8            288.86       400.47       1.39x\nBenchmark_UFlat9-8            262.13       362.89       1.38x\nBenchmark_UFlat10-8           640.03       943.89       1.47x\nBenchmark_UFlat11-8           356.37       493.98       1.39x\n\nThe numbers above are pure Go vs the new asm; about a 1.4x improvement.\nAs a data point, the numbers below are pure Go vs pure Go with bounds\nchecking disabled:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     498.83       516.68       1.04x\nBenchmarkWordsDecode1e2-8     445.12       495.22       1.11x\nBenchmarkWordsDecode1e3-8     530.29       612.44       1.15x\nBenchmarkWordsDecode1e4-8     361.08       374.12       1.04x\nBenchmarkWordsDecode1e5-8     270.69       300.66       1.11x\nBenchmarkWordsDecode1e6-8     290.91       325.22       1.12x\nBenchmark_UFlat0-8            543.87       655.85       1.21x\nBenchmark_UFlat1-8            449.84       516.04       1.15x\nBenchmark_UFlat2-8            15511.96     15291.13     0.99x\nBenchmark_UFlat3-8            873.92       1063.07      1.22x\nBenchmark_UFlat4-8            2978.58      3615.30      1.21x\nBenchmark_UFlat5-8            536.04       639.51       1.19x\nBenchmark_UFlat6-8            278.33       309.44       1.11x\nBenchmark_UFlat7-8            271.63       301.89       1.11x\nBenchmark_UFlat8-8            288.86       322.38       1.12x\nBenchmark_UFlat9-8            262.13       289.92       1.11x\nBenchmark_UFlat10-8           640.03       787.34       1.23x\nBenchmark_UFlat11-8           356.37       403.35       1.13x\n\nIn other words, eliminating bounds checking gets you about a 1.15x\nimprovement. All the other benefits of hand-written asm gets you another\n1.2x over and above that.\n\nFor reference, I\u0027ve copy/pasted the \"go tool compile -S -B -o /dev/null\nmain.go\" output at http://play.golang.org/p/vOs4Z7Qf1X\n"
    },
    {
      "commit": "03ee571cd35416c1f81a9f9ad7437493f356666d",
      "tree": "94d50e03680e51342abff77522b67c11f5c0eee1",
      "parents": [
        "9eb9b0a693667cb6f6f82bfaad32bc9604818ccb"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 15:08:01 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 15:08:01 2016 +1100"
      },
      "message": "Use more than one \u0027not present\u0027 byte value to catch Decode overruns.\n\nPreviously, the dst buffer was initialized to all 0xfe byte values. An\noverrun caused by an incorrect copy from an early location to a later\none (past the end of dst) could have slipped through as a false negative\nbecause the old value and the new value were the same value (0xfe), so\nno change was detected.\n\nAfter this commit, the dst buffer is initialized with a variety of byte\nvalues, which makes it less likely, although not impossible, to have\nsuch false negatives.\n"
    },
    {
      "commit": "9eb9b0a693667cb6f6f82bfaad32bc9604818ccb",
      "tree": "f30987257208c6bbf73db55fdf713fd7120785b6",
      "parents": [
        "da163d3224e54fb4a5616b463f429a267c490ab0"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 14:40:06 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 14:40:06 2016 +1100"
      },
      "message": "Add a comment about forwardCopy semantics.\n"
    },
    {
      "commit": "da163d3224e54fb4a5616b463f429a267c490ab0",
      "tree": "845fb5af573404f075b9b25622df062d764cbe4b",
      "parents": [
        "12528fe03377c314f32e3dc5e029835d42ccad90"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 10:31:01 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 26 10:31:01 2016 +1100"
      },
      "message": "Note that Decode\u0027s dst and src must not overlap.\n"
    },
    {
      "commit": "12528fe03377c314f32e3dc5e029835d42ccad90",
      "tree": "4814f23a84735efedc456f991704e8ca0ad931b7",
      "parents": [
        "32b392a8a69efa93c6b91f2879ce2e8d7cc48e6a"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 23:55:04 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 23:55:04 2016 +1100"
      },
      "message": "Make TestDecodeLengthOffset test values above 16.\n\nAn upcoming commit will switch algorithms at values near this magic cutoff.\n"
    },
    {
      "commit": "32b392a8a69efa93c6b91f2879ce2e8d7cc48e6a",
      "tree": "db0abd1f54f6ac67098dc0df788229d0a9f611d8",
      "parents": [
        "624b11c0e081dc0941e36b0f1c84436dc78b9384"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 16:58:01 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 16:58:01 2016 +1100"
      },
      "message": "Make a small s/uint/uint32/ decoder optimization.\n\nI\u0027m not entirely sure why the benchmark numbers improve as much as they\ndo, but I\u0027ll take it.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsDecode1e1-8     482.12       485.84       1.01x\nBenchmarkWordsDecode1e2-8     372.28       421.86       1.13x\nBenchmarkWordsDecode1e3-8     482.21       525.44       1.09x\nBenchmarkWordsDecode1e4-8     339.46       360.87       1.06x\nBenchmarkWordsDecode1e5-8     264.90       270.42       1.02x\nBenchmarkWordsDecode1e6-8     284.27       290.98       1.02x\nBenchmark_UFlat0-8            511.15       544.02       1.06x\nBenchmark_UFlat1-8            431.52       450.03       1.04x\nBenchmark_UFlat2-8            15208.70     15099.07     0.99x\nBenchmark_UFlat3-8            805.02       871.78       1.08x\nBenchmark_UFlat4-8            2631.19      2980.30      1.13x\nBenchmark_UFlat5-8            501.62       535.45       1.07x\nBenchmark_UFlat6-8            271.30       278.13       1.03x\nBenchmark_UFlat7-8            265.19       272.14       1.03x\nBenchmark_UFlat8-8            282.54       288.80       1.02x\nBenchmark_UFlat9-8            256.39       262.69       1.02x\nBenchmark_UFlat10-8           590.37       640.96       1.09x\nBenchmark_UFlat11-8           339.13       357.01       1.05x\n"
    },
    {
      "commit": "624b11c0e081dc0941e36b0f1c84436dc78b9384",
      "tree": "927b5e3ce585c3ff3b868dee1669dc4d7f5920b6",
      "parents": [
        "bb00731b7e6e99396fd9fceb71cb9a4ec8d5a84e"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 15:30:12 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 15:30:12 2016 +1100"
      },
      "message": "Fix some comment styles.\n"
    },
    {
      "commit": "bb00731b7e6e99396fd9fceb71cb9a4ec8d5a84e",
      "tree": "eced5bef470601f0520fa94d15f9b4533f916588",
      "parents": [
        "343d0f457986aaa28f2f835d2fc658b05f2f0575"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 14:10:04 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 14:10:04 2016 +1100"
      },
      "message": "Ensure that Decode doesn\u0027t write past the decoded length.\n"
    },
    {
      "commit": "343d0f457986aaa28f2f835d2fc658b05f2f0575",
      "tree": "ee29052b5070223bdf41f85533ebc84e4fe78d33",
      "parents": [
        "f1ae40350d6b5e75c92360916bf2b8682fefdb9d"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 13:31:42 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 13:31:42 2016 +1100"
      },
      "message": "Add a snappytool command that uses the C++ library.\n\nThe pi.txt.rawsnappy file was generated by this tool, on an amd64\n(little-endian) system.\n"
    },
    {
      "commit": "f1ae40350d6b5e75c92360916bf2b8682fefdb9d",
      "tree": "f0cb9414ba2ef825675548400f5e6e96ffe08c40",
      "parents": [
        "6d15e7ca47959c9369adfcdc4dee85987e724222"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 11:51:15 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 11:51:15 2016 +1100"
      },
      "message": "Update .gitignore.\n"
    },
    {
      "commit": "6d15e7ca47959c9369adfcdc4dee85987e724222",
      "tree": "d335fcd371236c4352745c2da40165ac39971bd6",
      "parents": [
        "a64ab7d6ec9063f18962f0e493a31e7093df6102"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 11:27:56 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 25 11:27:56 2016 +1100"
      },
      "message": "Move benchmark data files to testdata/bench.\n\nAn upcoming commit will add other testdata files.\n"
    },
    {
      "commit": "a64ab7d6ec9063f18962f0e493a31e7093df6102",
      "tree": "0040375f758f8cb07951c03d48eca37006f71c14",
      "parents": [
        "b95e9b379b96cebd6fe84815474678b48f01aae5"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 23 23:49:10 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 23 23:49:10 2016 +1100"
      },
      "message": "Add TestDecodeLengthOffset.\n"
    },
    {
      "commit": "b95e9b379b96cebd6fe84815474678b48f01aae5",
      "tree": "81303dd4f016d5b68de37a1091b40464149d18d4",
      "parents": [
        "939eddc12b3be18dfc77ed573344c3c689527ef3"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 23 22:58:05 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 23 22:58:05 2016 +1100"
      },
      "message": "Merge overlapping test cases in TestInvalidVarint and TestDecode.\n"
    },
    {
      "commit": "939eddc12b3be18dfc77ed573344c3c689527ef3",
      "tree": "1036d8c213d5e8e207b96a40512cb9ccfafe05b4",
      "parents": [
        "e2923611954f008a6e6c8dfb5ae11052aa913332"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 23 13:12:51 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 23 13:12:51 2016 +1100"
      },
      "message": "Add some more TestDecode cases.\n"
    },
    {
      "commit": "e2923611954f008a6e6c8dfb5ae11052aa913332",
      "tree": "2ede7af25f9f87b4e108c1f46ad78122ff8d8dce",
      "parents": [
        "bf2ded9d81f5c22b62cf76363673c6f9765a6703"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Feb 22 13:44:50 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Feb 22 13:44:50 2016 +1100"
      },
      "message": "Catch overflow when incrementing src pointers.\n"
    },
    {
      "commit": "bf2ded9d81f5c22b62cf76363673c6f9765a6703",
      "tree": "57d94b39b503b9a7d5359d29848052c676b2a47b",
      "parents": [
        "d1d908a252c22fd7afd36190d5cffb144aa8f777"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Feb 22 12:44:36 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Mon Feb 22 12:44:36 2016 +1100"
      },
      "message": "Use 64K blocks when encoding long inputs.\n\nThis enables future optimizations, such as an encoder\u0027s hash table entry being\nuint16 instead of int32.\n"
    },
    {
      "commit": "d1d908a252c22fd7afd36190d5cffb144aa8f777",
      "tree": "747c65252cd7e9ae49c6d916954c50006c40b2c2",
      "parents": [
        "c2359a1bd0bd4a2de4f1bd92ccd045fb60d0a994"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Feb 14 16:54:35 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Feb 14 16:54:35 2016 +1100"
      },
      "message": "Fix heuristic match skipping.\n\nThe heuristic was introduced in 4e2aa98e, based on the C++ Snappy\nimplementation, but the Go code contained a flawed optimization. The C++ code\nused an explicit skip variable:\n\n  uint32 bytes_between_hash_lookups \u003d skip++ \u003e\u003e 5;\n  next_ip \u003d ip + bytes_between_hash_lookups;\n\nwhereas the Go code optimized this to be an implicit skip:\n\n  s +\u003d 1 + (s-lit)\u003e\u003e5\n\nThis is equivalent for small s values (relative to lit, the last hash table\nhit), but diverges for large ones. This Go program demonstrates the difference:\n\n// main prints the encoder skipping behavior when seeing no hash table hits.\nfunc main() {\n  s0, s1 :\u003d 0, 0\n  skip :\u003d 32\n  for i :\u003d 0; i \u003c 300; i++ {\n    // This is the C++ Snappy algorithm.\n    bytes_between_hash_lookups :\u003d skip \u003e\u003e 5\n    skip++\n    s0 +\u003d bytes_between_hash_lookups\n\n    // This is the Go Snappy algorithm.\n    s1 +\u003d 1 + s1\u003e\u003e5\n\n    // The intention was that the Go algorithm behaves the same as the C++\n    // one, but it doesn\u0027t.\n    if i%10 \u003d\u003d 0 {\n      fmt.Printf(\"%d\\t%d\\t%d\\n\", i, s0, s1)\n    }\n  }\n}\n\nIt prints:\n\n0\t1\t1\n10\t11\t11\n20\t21\t21\n30\t31\t31\n40\t50\t50\n50\t70\t73\n60\t90\t105\n70\t117\t149\n80\t147\t208\n90\t177\t288\n100\t212\t398\n110\t252\t548\n120\t292\t752\n130\t335\t1030\n140\t385\t1408\n150\t435\t1922\n160\t486\t2619\n170\t546\t3568\n180\t606\t4861\n190\t666\t6617\n200\t735\t9005\n210\t805\t12257\n220\t875\t16681\n230\t952\t22697\n240\t1032\t30881\n250\t1112\t42015\n260\t1197\t57161\n270\t1287\t77764\n280\t1377\t105791\n290\t1470\t143914\n\nThe C++ algorithm is quadratic. The Go algorithm is exponential.\n\nThis commit re-introduces the explicit skip variable, so that the Go\nimplementation matches the C++ implementation.\n\nFor completeness, benchmark numbers are included below, but the worse numbers\nmerely reflect that the old Go algorithm was too aggressive on skipping ahead\non incompressible input (RandomEncode, ZFlat2 and ZFlat4), and so after an\ninitial warm-up period, it was essentially performing not much more than a\nmemcpy. Memcpy is indeed fast in terms of MB/s, but it doesn\u0027t compress at all,\nwhich obviously defeats the whole purpose of a compression format like Snappy.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-4     3.65         3.77         1.03x\nBenchmarkWordsEncode1e2-4     29.22        29.35        1.00x\nBenchmarkWordsEncode1e3-4     99.46        101.20       1.02x\nBenchmarkWordsEncode1e4-4     118.11       121.54       1.03x\nBenchmarkWordsEncode1e5-4     90.37        91.72        1.01x\nBenchmarkWordsEncode1e6-4     107.49       108.88       1.01x\nBenchmarkRandomEncode-4       7679.09      4491.97      0.58x\nBenchmark_ZFlat0-4            229.41       233.79       1.02x\nBenchmark_ZFlat1-4            115.10       116.83       1.02x\nBenchmark_ZFlat2-4            7256.88      3003.79      0.41x\nBenchmark_ZFlat3-4            53.39        54.02        1.01x\nBenchmark_ZFlat4-4            1873.63      289.28       0.15x\nBenchmark_ZFlat5-4            233.29       234.95       1.01x\nBenchmark_ZFlat6-4            101.33       102.79       1.01x\nBenchmark_ZFlat7-4            95.26        96.63        1.01x\nBenchmark_ZFlat8-4            105.66       106.89       1.01x\nBenchmark_ZFlat9-4            92.04        93.11        1.01x\nBenchmark_ZFlat10-4           265.68       265.93       1.00x\nBenchmark_ZFlat11-4           149.72       151.32       1.01x\n\nThese numbers were generated on an amd64 machine, but on a different machine\nthan the one used for other recent commits. The raw MB/s numbers are therefore\nnot directly comparable, although the speedup numbers should be.\n"
    },
    {
      "commit": "c2359a1bd0bd4a2de4f1bd92ccd045fb60d0a994",
      "tree": "af6da537d72cf6d7c6ce24d6cf5902f4a8798168",
      "parents": [
        "cc71ae7cc5b621a5a0d6c776ca4c571ab629f495"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 20:09:53 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 20:09:53 2016 +1100"
      },
      "message": "Catch MaxEncodedLen overflow.\n"
    },
    {
      "commit": "cc71ae7cc5b621a5a0d6c776ca4c571ab629f495",
      "tree": "8b0e3d1aac786833efbac1bf4e6fcd6a241ec1b3",
      "parents": [
        "51195a16b052437072a3e46972e348569f2a2f7a"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 14:11:38 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 14:11:38 2016 +1100"
      },
      "message": "Change the encoder\u0027s hash table values from int to int32.\n\nDoing s/int/int32/ in \"var table [maxTableSize]int\" saves 64 KiB of\nstack space that needed zero\u0027ing. maxTableSize is 1\u003c\u003c14, or 16384.\n\nThe benchmarks show the biggest effect for small src lengths, or for\nmostly uncompressible data such as the JPEG file (possibly because the\nmultiple-byte skipping means that the src is effectively short).\n\nOn amd64:\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e1-8     3.05         5.71         1.87x\nBenchmarkWordsEncode1e2-8     26.98        44.87        1.66x\nBenchmarkWordsEncode1e3-8     130.87       156.72       1.20x\nBenchmarkWordsEncode1e4-8     162.48       180.89       1.11x\nBenchmarkWordsEncode1e5-8     132.35       131.27       0.99x\nBenchmarkWordsEncode1e6-8     159.97       158.49       0.99x\nBenchmarkRandomEncode-8       12340.86     13485.69     1.09x\nBenchmark_ZFlat0-8            329.92       329.17       1.00x\nBenchmark_ZFlat1-8            165.06       164.46       1.00x\nBenchmark_ZFlat2-8            8955.25      10530.49     1.18x\nBenchmark_ZFlat3-8            47.79        80.06        1.68x\nBenchmark_ZFlat4-8            2650.55      2732.00      1.03x\nBenchmark_ZFlat5-8            336.52       334.94       1.00x\nBenchmark_ZFlat6-8            147.99       145.85       0.99x\nBenchmark_ZFlat7-8            136.32       137.20       1.01x\nBenchmark_ZFlat8-8            153.03       152.15       0.99x\nBenchmark_ZFlat9-8            133.18       131.74       0.99x\nBenchmark_ZFlat10-8           376.02       378.28       1.01x\nBenchmark_ZFlat11-8           224.16       216.81       0.97x\n\nThanks to Klaus Post for the original suggestion on\nhttps://github.com/golang/snappy/pull/23 but I hesitate to accept that\npull request in its entirety as it makes many changes, some more\ncomplicated than this separable, self-contained s/int/int32/ change.\n"
    },
    {
      "commit": "51195a16b052437072a3e46972e348569f2a2f7a",
      "tree": "67f3ab41245126ae3f9154e15d55bb4b077c3807",
      "parents": [
        "7e6c06b922704573a4691616b49cdf1ceda019ee"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 11:06:01 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 11:06:01 2016 +1100"
      },
      "message": "Add some length/offset tests where offset \u003c length.\n"
    },
    {
      "commit": "7e6c06b922704573a4691616b49cdf1ceda019ee",
      "tree": "58fa6b93bbe6fd9daa1cee3828d53d5122adffd3",
      "parents": [
        "5979233c5d6225d4a8e438cdd0b411888449ddab"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 11:02:00 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sat Feb 13 11:02:00 2016 +1100"
      },
      "message": "Reject zero offsets in a length/offset pair.\n\nThe spec at\nhttps://github.com/google/snappy/blob/master/format_description.txt\nsays that, \"Offsets of zero can be encoded, but are not legal\".\n"
    },
    {
      "commit": "5979233c5d6225d4a8e438cdd0b411888449ddab",
      "tree": "e900e5328179d9441d08a87f42ee6f96501c752c",
      "parents": [
        "6ad2a85e2fb1845c840c4a67584a8d346a5effde"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 22:30:41 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 22:30:41 2016 +1100"
      },
      "message": "Run go fmt.\n"
    },
    {
      "commit": "6ad2a85e2fb1845c840c4a67584a8d346a5effde",
      "tree": "d530e9819aec38cfaee862b2bea1895fb7f70b9a",
      "parents": [
        "5096ca2afaf180b77b2e1211ec6fe083a7f8fa94"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 22:29:32 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 22:29:32 2016 +1100"
      },
      "message": "Catch overflow when incrementing dst pointer.\n"
    },
    {
      "commit": "5096ca2afaf180b77b2e1211ec6fe083a7f8fa94",
      "tree": "eb0c7c0b965ade0088b06d8978b9f50aa1d95154",
      "parents": [
        "fd4a55a040e7b647d7884ce3611033024a20ed58"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 22:15:16 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 22:15:16 2016 +1100"
      },
      "message": "Improve Decode test coverage.\n"
    },
    {
      "commit": "fd4a55a040e7b647d7884ce3611033024a20ed58",
      "tree": "633f4dba525935914ee5db217e67d3b1e28f885e",
      "parents": [
        "07070fd417b5119979b887e148843b58508e4371"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 16:52:07 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 16:52:07 2016 +1100"
      },
      "message": "Add a .gitignore file for the downloaded testdata.\n"
    },
    {
      "commit": "07070fd417b5119979b887e148843b58508e4371",
      "tree": "55271ef8a4bf1df2f9fc153f5ffe00f2d0f93b38",
      "parents": [
        "799c780093d646c1b79d30894e22512c319fa137"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 16:49:07 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Feb 12 16:49:07 2016 +1100"
      },
      "message": "Catch overflow when incrementing src pointers.\n"
    },
    {
      "commit": "799c780093d646c1b79d30894e22512c319fa137",
      "tree": "77cc644976a7261a35522220ed22721880fe9799",
      "parents": [
        "0fd139378be7c52384b7191d82ad04eb93560627"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 11 17:10:40 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 11 17:10:40 2016 +1100"
      },
      "message": "Reduce the number of Write calls to the underlying io.Writer.\n"
    },
    {
      "commit": "0fd139378be7c52384b7191d82ad04eb93560627",
      "tree": "ec33d5db7346855150a6d4c0de0dd2562146eb30",
      "parents": [
        "75a5f0a18524f82ea066e173c9b481e0fc874c89"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 11 15:44:51 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Feb 11 15:44:51 2016 +1100"
      },
      "message": "Add NewBufferedWriter, and Flush and Close methods.\n\nDeprecate NewWriter.\n\nSee the discussion on\nhttps://groups.google.com/d/topic/golang-dev/nXp12KmMSvM/discussion\n"
    },
    {
      "commit": "75a5f0a18524f82ea066e173c9b481e0fc874c89",
      "tree": "c055c1c7875d7907a7d5bf98eda954e93d5c2b01",
      "parents": [
        "4e2aa98ebb3b732224766c34765ae4f4154a32a4"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 17:47:13 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 17:47:13 2016 +1100"
      },
      "message": "Add some shorter benchmarks.\n"
    },
    {
      "commit": "4e2aa98ebb3b732224766c34765ae4f4154a32a4",
      "tree": "5d8a11d0ebb93d860469c693f5edf65da8f5bd30",
      "parents": [
        "99f5c1a34c59248341de48e431978b003d4f4c42"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 14:29:38 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 14:31:44 2016 +1100"
      },
      "message": "Skip multiple bytes if the last match was \u003e\u003d 32 bytes prior.\n\nbenchmark                     old MB/s     new MB/s     speedup\nBenchmarkWordsEncode1e3-8     137.99       132.57       0.96x\nBenchmarkWordsEncode1e4-8     173.30       156.26       0.90x\nBenchmarkWordsEncode1e5-8     137.16       132.59       0.97x\nBenchmarkWordsEncode1e6-8     165.45       164.47       0.99x\nBenchmarkRandomEncode-8       140.04       12260.44     87.55x\nBenchmark_ZFlat0-8            334.14       335.84       1.01x\nBenchmark_ZFlat1-8            168.93       168.19       1.00x\nBenchmark_ZFlat2-8            134.42       8763.96      65.20x\nBenchmark_ZFlat3-8            48.04        47.36        0.99x\nBenchmark_ZFlat4-8            151.86       2578.12      16.98x\nBenchmark_ZFlat5-8            344.43       341.94       0.99x\nBenchmark_ZFlat6-8            149.21       147.24       0.99x\nBenchmark_ZFlat7-8            140.87       138.72       0.98x\nBenchmark_ZFlat8-8            155.95       155.89       1.00x\nBenchmark_ZFlat9-8            135.05       136.07       1.01x\nBenchmark_ZFlat10-8           380.98       379.77       1.00x\nBenchmark_ZFlat11-8           227.48       226.59       1.00x\n\nThanks to Klaus Post for the original suggestion. Unfortunately,\nhttps://github.com/golang/snappy/pull/19 was abandoned.\n"
    },
    {
      "commit": "99f5c1a34c59248341de48e431978b003d4f4c42",
      "tree": "d3fb4de89ae7dd780c11b73446ecc876de6c7766",
      "parents": [
        "92d8f39f9c78e11c7acf86389a7a21355bc60ea2"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 13:21:14 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 13:21:14 2016 +1100"
      },
      "message": "Add a sizeLimit to the benchmarks.\n\nThis distinguishes the \"jpg\" and \"jpg_200\" benchmarks.\n\nThe same size limit is used by the C++ snappy benchmarks.\n"
    },
    {
      "commit": "92d8f39f9c78e11c7acf86389a7a21355bc60ea2",
      "tree": "c43b95bfe75ebf260c531a531370bd160343bd13",
      "parents": [
        "a3e588b9ea766df37f868a2162d11837add33f8d"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 11:09:04 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Feb 10 11:09:04 2016 +1100"
      },
      "message": "A+C: remove Klaus Post \u003cklauspost@gmail.com\u003e.\n\nThe previous commit added Klaus Post in anticipation of landing pull\nrequest #19 (https://github.com/golang/snappy/pull/19). That PR has been\nabandoned.\n"
    },
    {
      "commit": "a3e588b9ea766df37f868a2162d11837add33f8d",
      "tree": "3eeec24fe6569b4668915da35473e01928a16a7d",
      "parents": [
        "894fd4616c897c201d223c3c0c128e8c648c96a2"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 09 09:33:10 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Tue Feb 09 09:33:10 2016 +1100"
      },
      "message": "A+C: add Klaus Post \u003cklauspost@gmail.com\u003e.\n"
    },
    {
      "commit": "894fd4616c897c201d223c3c0c128e8c648c96a2",
      "tree": "c43b95bfe75ebf260c531a531370bd160343bd13",
      "parents": [
        "7269ba46dc70d1d526462eb47e0dbb3fdbfdc912"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Feb 07 16:48:55 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Feb 07 16:48:55 2016 +1100"
      },
      "message": "Use a less unusual looking random number seed when testing.\n\nI can\u0027t remember why we used 27354294 in the first place, but every time\nI see that magic number now, I stop to wonder why it\u0027s that particular\nvalue. Instead, just use 1. It\u0027s less distracting.\n"
    },
    {
      "commit": "7269ba46dc70d1d526462eb47e0dbb3fdbfdc912",
      "tree": "9c564c6e412be136de3b480548e72cf3c7439323",
      "parents": [
        "1963d058044b19e16595f80d5050fa54e2070438"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Feb 07 16:26:46 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Sun Feb 07 16:26:46 2016 +1100"
      },
      "message": "Add BenchmarkRandomEncode.\n"
    },
    {
      "commit": "1963d058044b19e16595f80d5050fa54e2070438",
      "tree": "f30cce773eb129edfce50b06122ea71c225e41cd",
      "parents": [
        "45146e5b8d6d3f7ad8a4e7828bb8d8b4d8bb378c",
        "405fe506d8fb314e6a0527030379d39f73aa9fc6"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jan 29 13:31:48 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jan 29 13:31:48 2016 +1100"
      },
      "message": "Merge pull request #22 from rhcarvalho/patch-1\n\nFix typo in godoc."
    },
    {
      "commit": "45146e5b8d6d3f7ad8a4e7828bb8d8b4d8bb378c",
      "tree": "bb4513122caf32b3c283abf172e5ba860024cdfd",
      "parents": [
        "723cc1e459b8eea2dea4583200fd60757d40097a"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jan 29 13:30:43 2016 +1100"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jan 29 13:30:43 2016 +1100"
      },
      "message": "A+C: add Rodolfo Carvalho \u003crhcarvalho@gmail.com\u003e.\n"
    },
    {
      "commit": "405fe506d8fb314e6a0527030379d39f73aa9fc6",
      "tree": "a58464a68473fb061f7727a583355f07c4dd4cb7",
      "parents": [
        "723cc1e459b8eea2dea4583200fd60757d40097a"
      ],
      "author": {
        "name": "Rodolfo Carvalho",
        "email": "rhcarvalho@gmail.com",
        "time": "Wed Dec 23 00:04:31 2015 +0100"
      },
      "committer": {
        "name": "Rodolfo Carvalho",
        "email": "rhcarvalho@gmail.com",
        "time": "Wed Dec 23 00:04:31 2015 +0100"
      },
      "message": "Fix typo in godoc"
    },
    {
      "commit": "723cc1e459b8eea2dea4583200fd60757d40097a",
      "tree": "9843c5d33d5ec3d13435c830206b2e6f216843e5",
      "parents": [
        "0c7f8a7704bfec561913f4df52c832f094ef56f0",
        "f5466f1dff1dd2a94a6f05d2707e9e1c2ccd19fc"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Jul 30 13:18:44 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Thu Jul 30 13:18:44 2015 +1000"
      },
      "message": "Merge pull request #16 from dgryski/uint32-fix\n\nFix max block size check"
    },
    {
      "commit": "f5466f1dff1dd2a94a6f05d2707e9e1c2ccd19fc",
      "tree": "cc35a81e663f0367ef2dd5d8490a41124c6bdfc5",
      "parents": [
        "f4b10fa94214ba1b3d4068beeda8f920bf352cf0"
      ],
      "author": {
        "name": "Damian Gryski",
        "email": "damian@gryski.com",
        "time": "Tue Jul 21 08:51:40 2015 +0200"
      },
      "committer": {
        "name": "Damian Gryski",
        "email": "damian@gryski.com",
        "time": "Wed Jul 29 11:31:05 2015 +0200"
      },
      "message": "Fix max block size check\n\nSince Go 1.1, `int` has been 64-bits on 64-bit platforms instead of\n32-bits.  This patch fixes the check to make sure the uncompressed\nlength is at most 2^32-1 bytes.\n\nFixes #15\n"
    },
    {
      "commit": "0c7f8a7704bfec561913f4df52c832f094ef56f0",
      "tree": "3700551d553a6a9b8439426248d60d7bb3f0715c",
      "parents": [
        "cbff9e9065fa47982110465b585847049779de46",
        "ec7b9243422ba0e991879a02ec0cff2db5b8c4a2"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Jul 22 13:30:58 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Jul 22 13:30:58 2015 +1000"
      },
      "message": "Merge pull request #18 from dgryski/github-move\n\nC++ snappy has moved to github"
    },
    {
      "commit": "cbff9e9065fa47982110465b585847049779de46",
      "tree": "7daf735ca96850188a1a2c45d4e5a72981859235",
      "parents": [
        "7f37d6723d0efa65f54b6536bcb8eae033b2d227",
        "28028bb0f19deef8fdbbe69b65b4c8c6c4e92e23"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Jul 22 13:30:24 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Jul 22 13:30:24 2015 +1000"
      },
      "message": "Merge pull request #17 from dgryski/golint-fixes\n\nLint fixes."
    },
    {
      "commit": "7f37d6723d0efa65f54b6536bcb8eae033b2d227",
      "tree": "2e112017b7e35330874a66d603ff4e64644ff73c",
      "parents": [
        "f4b10fa94214ba1b3d4068beeda8f920bf352cf0"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Jul 22 13:28:08 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Wed Jul 22 13:28:08 2015 +1000"
      },
      "message": "A+C: add Damian Gryski \u003cdgryski@gmail.com\u003e.\n"
    },
    {
      "commit": "ec7b9243422ba0e991879a02ec0cff2db5b8c4a2",
      "tree": "263636313b429c56ba389469f07aec7caeff34f7",
      "parents": [
        "f4b10fa94214ba1b3d4068beeda8f920bf352cf0"
      ],
      "author": {
        "name": "Damian Gryski",
        "email": "damian@gryski.com",
        "time": "Tue Jul 21 09:11:46 2015 +0200"
      },
      "committer": {
        "name": "Damian Gryski",
        "email": "damian@gryski.com",
        "time": "Tue Jul 21 09:14:30 2015 +0200"
      },
      "message": "C++ snappy has moved to github\n"
    },
    {
      "commit": "28028bb0f19deef8fdbbe69b65b4c8c6c4e92e23",
      "tree": "70d51c1747e83999f9fd132fb52acffa6b5e50ef",
      "parents": [
        "f4b10fa94214ba1b3d4068beeda8f920bf352cf0"
      ],
      "author": {
        "name": "Damian Gryski",
        "email": "damian@gryski.com",
        "time": "Tue Jul 21 09:07:25 2015 +0200"
      },
      "committer": {
        "name": "Damian Gryski",
        "email": "damian@gryski.com",
        "time": "Tue Jul 21 09:07:25 2015 +0200"
      },
      "message": "Lint fixes.\n"
    },
    {
      "commit": "f4b10fa94214ba1b3d4068beeda8f920bf352cf0",
      "tree": "9317eb83f5c2e4a3ba44c2fd062ed390a5258f4f",
      "parents": [
        "2a6d64140deef3a1e4498f510a34c8b3d05ceeab"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jul 17 17:30:15 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jul 17 17:30:15 2015 +1000"
      },
      "message": "Reject invalid varints when decoding.\n\nFixes #7.\nFixes #11.\n"
    },
    {
      "commit": "2a6d64140deef3a1e4498f510a34c8b3d05ceeab",
      "tree": "76a129c65e8952d6acd252acc9d24bc71654b2ad",
      "parents": [
        "6bb8005037342f93151dcc3585f7e9d363298085"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jul 17 17:21:07 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jul 17 17:21:07 2015 +1000"
      },
      "message": "Have Encode return []byte instead of ([]byte, error).\n\nEncoding can never fail, and returning an error is inconsistent with the\nstandard library\u0027s encoding/{ascii85,hex,pem} packages.\n\nFixes #8.\n"
    },
    {
      "commit": "6bb8005037342f93151dcc3585f7e9d363298085",
      "tree": "97843d0bbbb6b6cffb03d5b08aeced7875cff3a2",
      "parents": [
        "7a1576592b18c90a91ce2103ed37b515d194cb78"
      ],
      "author": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jul 17 17:10:16 2015 +1000"
      },
      "committer": {
        "name": "Nigel Tao",
        "email": "nigeltao@golang.org",
        "time": "Fri Jul 17 17:10:16 2015 +1000"
      },
      "message": "Skip benchmarks if /usr/share/dict/words isn\u0027t readable.\n\nFixes #1.\n"
    }
  ],
  "next": "7a1576592b18c90a91ce2103ed37b515d194cb78"
}
