Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Truncation Methods 2
Testing the various methods for truncating a number to an integer
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15
Browser:
Safari 26
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 months ago
num >> 0
30.6M/s
~~num
30.5M/s
num >>> 0
28.4M/s
num | 0
20.0M/s
num << 0
19.6M/s
Math.trunc(num)
17.1M/s
Math.floor(num)
15.0M/s
View exact numbers
Test name
Executions per second
✓
num >> 0
30,566,530 Ops/sec
~~num
30,541,668 Ops/sec
num >>> 0
28,353,926 Ops/sec
num | 0
19,983,364 Ops/sec
num << 0
19,609,268 Ops/sec
Math.trunc(num)
17,056,756 Ops/sec
Math.floor(num)
14,998,450 Ops/sec
Script Preparation code:
//"use strict"; const arr = Array.from({length: 100}, (function(){return Math.random()*1000}));
Tests:
Math.trunc(num)
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = Math.trunc(arr[i]); }
Math.floor(num)
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = Math.floor(arr[i]); }
~~num
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = ~~(arr[i]); }
num | 0
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = (arr[i]) | 0; }
num << 0
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = (arr[i]) << 0; }
num >> 0
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = (arr[i]) >> 0; }
num >>> 0
"use strict"; let x = 0; for (let i=0, len=arr.length; i<len; i++) { x = (arr[i]) >>> 0; }