JavaScript bitwise NOT vs Math.floor()

JavaScript performance comparison

Revision 3 of this test case created


Simple test to check the difference in performance of JavaScript Math.floor() vs double bitwise NOT operator: ~~.

More info here:

Preparation code

Benchmark.prototype.setup = function() {
    var numbers = [];
    //generate amount random numbers
    for (var i = 0; i < 100000; i++) {
      numbers[numbers.length] = Math.random() * 100000;

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
var test;
for (var i = 0; i < 100000; i++) {
  test = Math.floor(numbers[i]) || 0;
bitwise NOT
var test;
for (var i = 0; i < 100000; i++) {
  test = ~~ (numbers[i]);

Compare results of other browsers


You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:


Comment form temporarily disabled.

Add a comment