在Javascript中使数字为负的最便宜的方法
Cheapest way of making a number negative in Javascript
我正在优化我在javascript中制作的物理引擎。我一直在阅读一些关于与cpu使用相关的操作成本的文章,但我找不到这个问题的答案。我想做一个"否定"。我想出了两个不同的解决方案:
a *= -1;
或
a = -a;
哪一个是最快的?我读到乘法很便宜,但这些方法中哪一种是最好的?
似乎过度优化了。
我将选择second,因为它很短
a*=-1; //5
a=-a; //4
我已经执行了一个小测试。结果:没关系!
<!DOCTYPE HTML>
<html>
<body>
<script>
var a = 123.21;
var start = new Date().getTime(); // time in milliseconds
for(var i = 0; i < 1000000000; i++) {
//a = -a;
// results into time needed: 2002 ms when a is integer, 3505 ms when a is floating point
a *= -1;
// results into time needed: 1992 ms when a is integer, 3671 ms when a is floating point
}
var end = new Date().getTime();
var time = end - start;
alert("time needed: "+time);
</script>
</body>
</html>
不用猜了:http://jsperf.com/prefix-speed有答案
根据Chrome浏览器的这个测试,差异是无法区分的。
相关文章:
- 序列化数据属性中对象的最可靠方法
- JQuery:向多个匹配结果添加换行符的最简单方法
- 访问对象的最简单方法'的单独财产
- 在jQuery中创建向下滑动子菜单的最有效方法
- 查找对象数组是否包含其中一个标记的最快方法
- 选择具有值数组的所有元素的最有效方法
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- 使用javascript查找元素位置的最快方法
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 什么'这是用javascript隐藏和显示表中所有行的最快方法
- 什么'是删除WinJS ListView中所有项目的最快方法
- 将JS对象数组转换为嵌套形式的最有效方法
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- 什么'获取数组的已定义部分的最快方法是什么?JS
- 什么'这是使用jQuery将一些文本锚定到外部链接的最简单方法
- 选择具有特定数据的所有 html 标记的最有效方法是什么 - [适当性],无论值如何
- 实施会员系统的最简单方法是什么
- 在node.js中缓存数据的最便宜的方法
- 在Javascript中使数字为负的最便宜的方法
- 什么'这是在HTML5/CSS/Js中绘制水平线和垂直线的最便宜的方法