)]}'
{
  "commit": "13da180506b4c0fa3b9232e77167dae4d694bf32",
  "tree": "9d0e9ad319c3792f0068a8a9dab334350213b497",
  "parents": [
    "5dd18d017d60dda7f69a2efd3026e054c5cf7d02"
  ],
  "author": {
    "name": "Daniel McArdle",
    "email": "dmcardle@google.com",
    "time": "Wed Jan 06 17:26:55 2021 -0500"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Thu Jan 07 22:59:08 2021 +0000"
  },
  "message": "Optimize suffix building in FileTest::ReadNext().\n\nUpdating HPKE to draft-irtf-cfrg-hpke-07 added a number of tests to\ncrypto/hpke/hpke_test_vectors.txt. The time to run HPKE crypto tests\nincreased from 0.09 to 0.56 seconds (averaged over 6 runs). The runtime\nfor the whole crypto_test suite increased from 86.44 to 88.19 (measured\nonce).\n\nProfiling revealed an excessive amount of CPU time (~50% for HPKE tests)\nspent on std::map lookups in ReadNext(). I found a slow loop that\ncomputes the suffix for a repeated attribute by hammering a std::map\nwith incremental guesses.\n\nThis CL adds a std::map\u003cstd::string, size_t\u003e for counting repeated\nattributes, eliminating the need for the loop. This reduces the runtime\nfor HPKE tests from 0.56 to 0.12 seconds (averaged over 6 runs). For the\nwhole crypto_test suite, runtime is reduced from 88.19 to 86.71\nseconds (measured once).\n\nChange-Id: Ie87f4a7f3edc95d434226d2959dcf09974f0656f\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/44905\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "963429da51eabc032c0ab243ca17529f127d5432",
      "old_mode": 33188,
      "old_path": "crypto/test/file_test.cc",
      "new_id": "47a6f4c8b3711fb06aaf0e7e9d217314e4aff28d",
      "new_mode": 33188,
      "new_path": "crypto/test/file_test.cc"
    },
    {
      "type": "modify",
      "old_id": "87f306f9bdfd43f83898fda94afe06c0e9c619b5",
      "old_mode": 33188,
      "old_path": "crypto/test/file_test.h",
      "new_id": "150200387403e02d1d298e34fc5421b0aa230b14",
      "new_mode": 33188,
      "new_path": "crypto/test/file_test.h"
    }
  ]
}
