ByteArray to Hex String

Benchmark created by Allan Douglas R. de Oliveira on


Preparation HTML

<script>
  function max(n1, n2) {
      n1 = parseInt(n1, 10);
      n2 = parseInt(n2, 10);
      return n1 > n2 ? n1 : n2;
  }
  
  function AddFillerLeft(number, filler, length) {
      var str = '' + number;
      var fillerArray = new Array(max(length - str.length, 0) + 1);
      return fillerArray.join(filler) + str;
  }
  
  var ByteArray = {};
  ByteArray.ToHexStr_listpush = function(bytearray) {
      var result = [];
      var length = bytearray.length;
      for (var i = 0;i < length;++i) {
          result.push(AddFillerLeft(bytearray[i].toString(16).toUpperCase(), '0', 2));
      }
      return result.join('');
  };
  
  ByteArray._HexTable = {};
  for (var i = 0;i < 256;++i) {
      ByteArray._HexTable[i] = AddFillerLeft(i.toString(16).toUpperCase(), '0', 2);
  }
  
  ByteArray.ToHexStr_stringconcat = function(bytearray) {
      var result = '';
      var length = bytearray.length;
      for (var i = 0;i < length;++i) {
          result += AddFillerLeft(bytearray[i].toString(16).toUpperCase(), '0', 2);
      }
      return result;
  };
  
  ByteArray.ToHexStr_table = function(bytearray) {
      var result = '';
      var length = bytearray.length;
      for (var i = 0;i < length;++i) {
          result += ByteArray._HexTable[bytearray[i]];
      }
      return result;
  };
  var array = [];
  for (var i = 0;i < 256;++i) {
      array.push(i);
  }
  
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
ByteArray.ToHexStr List Join
ByteArray.ToHexStr_listpush(array);
ready
ByteArray.ToHexStr String Concat
ByteArray.ToHexStr_stringconcat(array);
ready
ByteArray.ToHexStr Static Table
ByteArray.ToHexStr_table(array);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Allan Douglas R. de Oliveira on
  • Revision 2: published by Allan Douglas R. de Oliveira on