【问题标题】:Large number division is too slow using bignumber.js in node.js在 node.js 中使用 bignumber.js 进行大数除法太慢
【发布时间】:2019-03-03 19:00:44
【问题描述】:

我正在使用这个库https://www.npmjs.com/package/big-number 来执行两个大数的除法:

我的函数有以下代码:

var x = new BigNumber(val);
var y = new BigNumber(100000000);
return x.dividedBy(y).toNumber();

这段代码在我的机器上被调用了 100 次,执行大约需要 10 秒。它在另一台机器上运行得更快,但是我们在云中的资源有限,我想对此进行优化。

我可以做些什么来优化它? 我正在使用 classical for 循环进行 100 次迭代。

【问题讨论】:

  • 操作数和结果是整数还是浮点数?

标签: node.js bignum


【解决方案1】:

假设您使用的是整数,JavaScript 中有一个内置的BigInt 类型,它将为您提供最佳性能:

let x = BigInt(val);
let y = 100000000n; // BigInt literals end in "n"
return Number(x / y);

【讨论】:

  • 我测了一下速度,差不多。
  • 不幸的是,这是您可以达到的最佳速度。如果您认为它速度过慢,请向 V8 发送错误报告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多