Dan*_*Dan 5 javascript optimization performance bit-manipulation
我在Math.ceil( Math.abs( x ) ) 循环中使用.
任何人都可以实现此操作的任何优化吗?(按位或什么?)
欢迎您在jsperf.com进行基准测试
根据webkit JavaScriptCore,Math.abs并不简单
case MathObjectImp::Abs:
result = ( arg < 0 || arg == -0) ? (-arg) : arg;
Run Code Online (Sandbox Code Playgroud)
但是ceil使用C的ceil函数
case MathObjectImp::Ceil:
result = ::ceil(arg);
Run Code Online (Sandbox Code Playgroud)
所以测试JSpref
http://jsperf.com/math-ceil-vs-bitwise
按位是更快的
测试@ orangedog的答案http://jsperf.com/math-ceil-vs-bitwise/2 Math.ceil 更快
所以我猜你最好的选择是:
var n = Math.abs(x);
var f = (n << 0),
f = f == n ? f : f + 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4191 次 |
| 最近记录: |