)]}'
{
  "commit": "daf570766d979c874e497466126e265a146db03a",
  "tree": "75d1870f7d330ea6d488becfbddeecea1215c2f1",
  "parents": [
    "5df3663f607a52ab3a11dad085c88e7668273cdd"
  ],
  "author": {
    "name": "bnc",
    "email": "bnc@google.com",
    "time": "Thu Oct 01 15:28:59 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Oct 01 15:29:33 2020 -0700"
  },
  "message": "Pre-allocate storage in http2::HuffmanEncode().\n\nAlso, do not call http2::HuffmanEncode() in\nQpackInstructionEncoder::DoStartString() if it does not result in size savings.\n\nNote that performance gets worse for short strings, presumably because\nstd::string::reserve() for small values is a no-op due to small string\noptimization.  However, I plan to modify http2::HuffmanEncode() not to clear the\noutput string and modify QpackInstructionEncoder to avoid copying, which should\nresult in a performance improvement overall.\n\nAlso I\u0027ll add a slightly faster implementation in the next CL, so this is really\nonly to change the API to make tests simpler.\n\nPiperOrigin-RevId: 334909897\nChange-Id: Idd7414c0dcaa56fc62d0822ec06250d480d2972c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b3f29fc69a2d99f7f1d0a93a46c02280304b34b",
      "old_mode": 33188,
      "old_path": "http2/hpack/huffman/hpack_huffman_encoder.cc",
      "new_id": "305bb5a7de8999c8c8550914e3dc75ddc21fbe39",
      "new_mode": 33188,
      "new_path": "http2/hpack/huffman/hpack_huffman_encoder.cc"
    },
    {
      "type": "modify",
      "old_id": "2ee4de21a70f64f091a72f21ab9dcdd0d847e932",
      "old_mode": 33188,
      "old_path": "http2/hpack/huffman/hpack_huffman_encoder.h",
      "new_id": "b7012b4f7ff0c9ab45b366f3ef5acdbb8cf82b8a",
      "new_mode": 33188,
      "new_path": "http2/hpack/huffman/hpack_huffman_encoder.h"
    },
    {
      "type": "modify",
      "old_id": "1f365c6b0da48dbe242d5ec94f07cc79a34d0a59",
      "old_mode": 33188,
      "old_path": "http2/hpack/huffman/hpack_huffman_encoder_benchmark.cc",
      "new_id": "9e4163f3bbacecc4bd4b1897c41b6aa6dc13e713",
      "new_mode": 33188,
      "new_path": "http2/hpack/huffman/hpack_huffman_encoder_benchmark.cc"
    },
    {
      "type": "modify",
      "old_id": "0c0968b88717399a4359ee32acdea69732edd181",
      "old_mode": 33188,
      "old_path": "http2/hpack/huffman/hpack_huffman_encoder_test.cc",
      "new_id": "5528408b282046c307fd7004c2f9dd24f5aee9b8",
      "new_mode": 33188,
      "new_path": "http2/hpack/huffman/hpack_huffman_encoder_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1123d2692f2bfe4f3ef94b4b75c8807f52fd48e6",
      "old_mode": 33188,
      "old_path": "http2/hpack/huffman/hpack_huffman_transcoder_test.cc",
      "new_id": "329f19367df86665b2386600ac81f80e3eb8330e",
      "new_mode": 33188,
      "new_path": "http2/hpack/huffman/hpack_huffman_transcoder_test.cc"
    },
    {
      "type": "modify",
      "old_id": "41e2d763455437ea220c18952baf5f05c15674d0",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_instruction_encoder.cc",
      "new_id": "7255216100985c7233c03c8c55232e7b36c63add",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_instruction_encoder.cc"
    }
  ]
}
