V8 BigInt在内存中的大小?

时间:2019-01-21 20:46:28

标签: node.js v8 bigint

是否有一种方法可以获取BigInt数字字节的占用内存大小?

If-End If

谢谢

1 个答案:

答案 0 :(得分:1)

V8开发人员在这里。通常无法确定对象的占用内存大小,BigInts也不例外。为什么要访问它?

就V8中的内部实现而言,BigInt具有一个小的对象标头(当前为两个指针大小;这可能会随着时间的变化而变化),然后对BigInt的每一位都有一点,四舍五入为整数倍。指针大小。 99999是一个17位数字,因此在您的示例let a = 99999n中(“ BigInt(99999n)”是多余的!),分配的BigInt将在64位系统上消耗(2 + Math.ceil(17/64)) * 64 bits === 24 bytes

将来在BigInts中添加与长度相关的属性或方法(.bitLength?)可能没有意义。如果您有用例,建议您在https://github.com/tc39/proposal-bigint/issues提出问题,以便进行讨论。