数字精度如何影响 JavaScript 的性能,或者会影响性能
How does number precision affect performance in JavaScript, or does it?
在 JavaScript 中,所有不同类型的数字只有一种类型。所用数字中的小数位数(精度)是否会影响性能,尤其是在 JavaScript 中?如果是这样,如何?
如何在MongoDB中保存数字:精确的数字比不太精确的数字占用更多的空间吗?
一般没有。 当数字不适合 31b 签名 int 时,可能会对性能造成一些影响。
V8 导览:对象表示解释
根据规范,JavaScript 中的所有数字都是 64 位浮点双精度。不过,我们经常使用整数,因此 V8 尽可能用 31 位有符号整数表示数字(低位始终为 0;这有助于垃圾回收器区分数字和指针)。因此,具有快速小整数元素类型的对象仅包含这种类型的数字。如果我们想存储一个小数或更大的整数或像 -0 这样的特殊值,那么我们需要将数组升级到快速双精度。这涉及可能昂贵的复制和转换操作,但在实践中并不经常发生。快速双精度对象仍然非常快,因为所有数字都存储在未装箱的表示形式中。如果我们想存储任何其他类型的值,例如字符串或对象,我们必须升级到快速元素的通用数组。
所用数字中的小数位数(精度)是否会影响性能,尤其是在 JavaScript 中?如果是这样,如何?
不。JavaScript 中的数字类型是以 2 为基数的 64 位浮点值,并且始终具有相同的精度。计算机一点一点地处理这些数据,这些数据是代表像1.0
这样对人类来说看起来很简单的东西,还是像123423.5645632
这样看似复杂的东西并不重要。事实上,对于以 2 为底的浮点数,"人类"值同样"硬",因为1.1
真正由更长的数字表示(如 1.10000000000000054
)。所有这些都无关紧要,因为计算机确实在 64 个 1 和 0 上运行。浮点中总是有一些晦涩难懂的例外,但这些在实践中通常无关紧要。
如何在MongoDB中保存数字:精确的数字比不太精确的数字占用更多的空间吗?
十进制数存储为双精度(64位),无论是1.0
还是1.1221234423
都无关紧要。同样,这些数据类型的位数是恒定的。
ints也是如此,但MongoDB同时支持32位和64位int。因此,NumberLong
确实比常规的 32 位整数大,并且与双精度一样大。
- NodeJ中的注释会影响性能吗
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- javascript getAttribute是否会影响性能或触发布局
- Coffeescript 隐式返回对性能和副作用的影响
- 行之间有空格会影响 JavaScript 代码的性能吗?
- 角度 1 路绑定不影响性能
- 数字精度如何影响 JavaScript 的性能,或者会影响性能
- ng-csp指令的性能影响
- 解除所有元素上的所有 jQuery 事件的性能影响
- Meteor 中的客户端渲染和光纤的性能影响
- 在计时器中持续访问 Cookie 的性能影响
- Node.js中未使用需求的性能影响
- Javascript-命名空间嵌套是否存在任何硬性限制(或性能影响)
- 对加载相关下拉列表的性能影响,最多约30000条记录
- 在一个应用程序中使用多个角度应用程序时的性能影响
- 1)对函数内部函数的性能影响2)多个条件下的顺序或流程
- KineticJS - KineticJS . node .listening()的性能影响
- 在Redux中切换到Immutable.js.性能影响是什么?对组件的影响是什么? '语法
- JavaScript base62编码的性能影响
- JavaScript对象文字表示法与普通函数及其性能影响