Fibonacci(50) Performance: Java C C++ D Go Terra (Lua) Lua-JIT (Lua)
joshitech.blogspot.comBack in the day, when we didn't know any better...
https://web.archive.org/web/20080729072224/http://shootout.a...
You should try to implement the Fib with tail call and then test it. http://en.wikipedia.org/wiki/Tail_call
First he should implement it properly, remembering last two values at any time. His way is just plain outrageous.
Here the comparison is not about the algorithm, but language with similar recursion logic.
Then he should have used appropriate function to calculate, Ackermann for instance.
I wonder if the author validated the results returned by Java for Fibonacci 50. Performance can increase significantly when correctness is not an issue. :)
Yes, if you look at the https://github.com/rohitjoshi/lang-compare/blob/master/fibon..., it print fibonacci (50) = 12586269025
Does anyone know why Java would be faster here? Is there any kind of optimization happening under the hood? (Automatic memoization?)
See the updated blog again. It seems issue is with Clang/LLVM on MacOSX. I reran the test on Linux with Gnu g++ and it outperforms Java.