@
codingpp “那不说各种语言了,就说同样的程序,在ie8和firefox中的差异怎么那么大
我在附言里就已经说了想了解 v8引擎是如何对递归、循环做优化的”-----------
我个人的猜测:firefox有asm.js; ie8?这简直是欺负ie,应该找ie10,11来试试。至于v8,它用了JIT优化但也不至于像asm.js那么极端,那已经比的不是js本身的性能了,感兴趣的话可以试试google的pnacl下c/c++代码的实现版本,跑出的性能,应该比asm.js还要快,但还是会比直接在机器上跑c/c++慢一些。
p.s.建议: lz可以把你的测试程序改成尾递归的版本再测试下试试。
此外,用具有循环语法的非函数式语言去测试递归版本的斐波那契数列是最糟糕的测试,而且实际中这些语言的斐波那契数列实现也不会这么去写,所以这根本无法反映实际问题。为那种根本用不上的纯粹为了跑分而去优化的情况,大多数主流的编程语言编译器不会去干的,没有意义。所以,lz可以测试下其他的例子,不要再用递归版的斐波那契数列来做测试了。