Javascript Java Hash

Benchmark created on


Description

math.imul vs <<

Preparation HTML

<script>
function hashCode(str) {
  var hash = 0,
    i, chr;
  if (str.length === 0) return hash;
  for (i = 0; i < str.length; i++) {
    chr = str.charCodeAt(i);
    hash = ((hash << 5) - hash) + chr;
    hash |= 0; // Convert to 32bit integer
  }
  return hash;
}

function hashCodeImul(str) {
  var hash = 0,
    i, chr;
  if (str.length === 0) return hash;
  for (i = 0; i < str.length; i++) {
    chr = str.charCodeAt(i);
    hash = Math.imul(hash, 31) + chr;
    hash |= 0; // Convert to 32bit integer
  }
  return hash;
}
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
regular
hashCode('test')
ready
imulation
hashCodeImul('test')
ready

Revisions

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