rgba hash lookup

Benchmark created by timb on


Preparation HTML

<script>
  hash = {}
  hash2 = {}
  for (var r = 0; r < 4; r++)
  for (var g = 0; g < 4; g++)
  for (var b = 0; b < 4; b++)
  for (var a = 0; a < 4; a++) {
   hash[[r, g, b, a].join(",")] = 1;
   hash2[(a | (b << 8) | (g << 16) | (r << 24)).toString()] = 1
  }
  
  
  
  
  var r = Math.floor(Math.random() * 4)
  var g = Math.floor(Math.random() * 4)
  var b = Math.floor(Math.random() * 4)
  var a = Math.floor(Math.random() * 4)
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
join
var index = hash[[r, g, b, a].join(",")]
index += 1 // do something
ready
string join
var index = hash[r + "," + g + "," + b + "," + a]
index += 1 // do something
ready
bit maths
var index = hash2[(a | (b << 8) | (g << 16) | (r << 24)).toString()]
index += 1 // do something
ready

Revisions

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