Dbl*_*Dbl 1 javascript recursion performance
我已经编写了一个javascript来通过javascript帮助模拟HTML中的WPF DockPanel布局行为.
现在,当我开始将这些面板嵌套到递归级别10时,我遇到了性能问题.奇怪的是,它只不过是普通的递归,并且在最深层次上,所讨论的函数在0.2到2ms之间完成.

现在要么我有一些鬼性能损失,还是在调用javascript的递归时有大量成本?我希望你们其中一个人知道.
如果有成本,显而易见的解决方案将是递归展开,这将是相当悲伤的.
我已经在JavaScript中阅读了SO-Recursive函数调用在此,但这是否真的意味着我可能必须接受recursiondepth n = functioncost*(10 ^(n-1))我会去的每个递归深度?
此外(这反驳了递归比迭代慢的想法)SO - 迭代比递归更快,还是更不容易出现堆栈溢出?
而这个程序员:性能:Javascript中的递归与迭代,它说迭代比递归的速度快4倍(叹息......)
这是一个普遍的问题,独立于浏览器JS引擎.如果你知道它在一个中速度慢但在另一个中速度很快,那么信息也会受到欢迎.我假设它总是一样的.
访问者的包装信息:递归与迭代的影响非常显着.迭代一般胜利.
是的,递归对JavaScript的性能有很大的影响,总是避免它,只使用迭代方法
斐波纳契函数的一个简单例子(递归与循环):
http://jsperf.com/fibonacci-recursive-or-iterative/4
我前一段时间写的另一个例子(对象导航):
http://jsperf.com/object-navigation
var a = {
b: {
c: 'd'
}
};
find(a, 'b/c'); // => 'd'
Run Code Online (Sandbox Code Playgroud)
OP-Test:http://jsperf.com/iterative-vs-recursive-method-invocation/3
| 归档时间: |
|
| 查看次数: |
4058 次 |
| 最近记录: |