所以,我正在编写一个 2d Javascript 物理模拟。性能很好,但我正在进行优化以使其更好。因此,由于该程序适用于大量物理几何,因此我在程序中进行了几次勾股定理计算。总共大约有五次计算;它们一起运行大约每秒一百万次。所以,我认为如果我将那个简单的勾股定理代码放入一个新函数并调用它,它会提高性能;毕竟,这样浏览器的编译工作就更少了。所以,我在 Firefox 中运行代码并得到......该计算的执行时间增加了 4000000%。
如何?这是相同的代码:Math.sqrt(x*x+y*y),那么将它作为一个函数添加是如何减慢它的呢?我认为原因是一个函数需要时间才能被调用,而不执行代码,并且每秒增加一百万个这样的延迟会减慢它的速度?
这对我来说似乎相当令人震惊。这也适用于预定义的 js 函数吗?这似乎不太可能,如果是这样,他们如何避免呢?
过去的代码是这样的:
function x()
{
dx=nx-mx;
dy=ny-my;
d=Math.sqrt(dx*dx+dy*dy);
doStuff(...
}
我尝试的是这样的:
function x()
{
dx=nx-mx;
dy=ny-my;
d=hypo(dx,dy);
doStuff(...
}
function hypo(x,y)
{
return Math.sqrt(x*x+y*y);
}
谢谢!