base58.cpp raw

   1  // Copyright (c) 2016-present The Bitcoin Core developers
   2  // Distributed under the MIT software license, see the accompanying
   3  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
   4  
   5  #include <base58.h>
   6  #include <bench/bench.h>
   7  
   8  #include <array>
   9  #include <cstring>
  10  #include <vector>
  11  
  12  
  13  static void Base58Encode(benchmark::Bench& bench)
  14  {
  15      static const std::array<unsigned char, 32> buff = {
  16          {
  17              17, 79, 8, 99, 150, 189, 208, 162, 22, 23, 203, 163, 36, 58, 147,
  18              227, 139, 2, 215, 100, 91, 38, 11, 141, 253, 40, 117, 21, 16, 90,
  19              200, 24
  20          }
  21      };
  22      bench.batch(buff.size()).unit("byte").run([&] {
  23          EncodeBase58(buff);
  24      });
  25  }
  26  
  27  
  28  static void Base58CheckEncode(benchmark::Bench& bench)
  29  {
  30      static const std::array<unsigned char, 32> buff = {
  31          {
  32              17, 79, 8, 99, 150, 189, 208, 162, 22, 23, 203, 163, 36, 58, 147,
  33              227, 139, 2, 215, 100, 91, 38, 11, 141, 253, 40, 117, 21, 16, 90,
  34              200, 24
  35          }
  36      };
  37      bench.batch(buff.size()).unit("byte").run([&] {
  38          EncodeBase58Check(buff);
  39      });
  40  }
  41  
  42  
  43  static void Base58Decode(benchmark::Bench& bench)
  44  {
  45      const char* addr = "17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem";
  46      std::vector<unsigned char> vch;
  47      bench.batch(strlen(addr)).unit("byte").run([&] {
  48          (void) DecodeBase58(addr, vch, 64);
  49      });
  50  }
  51  
  52  
  53  BENCHMARK(Base58Encode);
  54  BENCHMARK(Base58CheckEncode);
  55  BENCHMARK(Base58Decode);
  56