我有一个简单的游戏循环,如下所示:
let dt = 0
let last = 0
const gameLoop = ms => {
const t = ms / 1000
dt = t - last
last = t
console.log(dt)
requestAnimationFrame(gameLoop)
}
requestAnimationFrame(gameLoop)
现在,我正在研究一种方法,可以使不同帧率之间的运动和动画保持一致。为此,我必须将增量时间dt
与游戏中的对象相乘。
现在,当我将dt
登录到控制台时,我得到一个相当长的数字:0.0166700000285
尽管我不需要如此精确的数字来增加物体的速度。所以我的问题是,如果我固定小数位数,是否会提高性能。例如0.01667
如果是,要多少钱?
谢谢:)
答案 0 :(得分:1)
否,四舍五入浮点数会降低性能,因为这是一项附加操作。
十进制表示形式只适合我们人类。 javascript运行时和浮点单元对浮点数进行操作,而不管浮点数的十进制表示形式中有多少个小数。
答案 1 :(得分:-1)
我只是在脑子里打些什么: 首先,我们需要了解计算机的工作原理。一点基本知识,在您内部将所有从数据中看到的内容占用一定的空间。我们可以猜测,更多的字符代表存储和处理它们所需的更多位。 如果我们要进行乘法运算,就需要更多,就像我们的大脑一样,我们需要看到整个数字,将其存储在我们的脑袋中并进行处理。小数点后会有更多数字,更具挑战性。
它太低了,用肉眼很难看到。
可能相关: 我经常玩游戏。所有游戏都限制了它们可以计算的最大数量,这不是因为我的系统无法处理。但是因为效率。与运行它的os体系结构有关(32/64位的东西) 因此,如果您做得有效率,那么您将有时间进行舍入并可能限制小数位。 但是,如果您要处理的小数位数少于10个,我会说不是那么重要。 但是,是的,它的性能优势在于减少小数位数
多少性能收益: 如果您执行此过程的时间少于 几千/秒。 (来源:个人意见) 那就是如果您实际上必须每秒运行多次。 我看到服务器上会塞满东西,这似乎并没有我们可以做的其他优化影响那么小。
希望有帮助