Program: fibonacci.cr
def fibonacci(n)
  return n if n < 2
  fibonacci(n - 1) + fibonacci(n - 2)
end
print fibonacci(46)Clean Cache:
rm -rf ~/.cache/crystal/Compile:
$ time crystal build --release -o fibonacci-cr fibonacci.cr
real 0m8.205s
user 0m8.317s
sys  0m0.112sRun:
$ /usr/bin/time -v ./fibonacci-cr
1836311903
Command being timed: "./fibonacci-cr"
  User time (seconds): 9.09
  Percent of CPU this job got: 99%
  Maximum resident set size (kbytes): 3192Result:
Compilation: 8.2s
Runtime:     9.1s
Conclusion: 17.3sProgram: fibonacci.ml
let rec fibonacci =
  function n -> if n < 2 then n else fibonacci (n - 1) + fibonacci (n - 2)
;;
print_int (fibonacci(46))Compile:
$ time ocamlopt -o fibonacci-ml fibonacci.ml
real 0m0.082s
user 0m0.065s
sys  0m0.017sRun:
$ /usr/bin/time -v ./fibonacci-ml
1836311903
Command being timed: "./fibonacci-ml"
  User time (seconds): 9.02
  Percent of CPU this job got: 99%
  Maximum resident set size (kbytes): 2308Result:
Compilation: 0.1s
Runtime:     9.0s
Conclusion: 9.1sProgram: fibonacci.go
package main
func fibonacci(n int) int {
  if n <= 1 {
    return n
  }
  return fibonacci(n-1) + fibonacci(n-2)
}
func main() {
  print(fibonacci(46))
}Compile:
$ time go build -o fibonacci-go fibonacci.go
real 0m0.122s
user 0m0.132s
sys  0m0.045sRun:
$ /usr/bin/time -v ./fibonacci-go
1836311903
Command being timed: "./fibonacci-go"
  User time (seconds): 12.50
  Percent of CPU this job got: 100%
  Maximum resident set size (kbytes): 1244Result:
Compilation: 0.1s
Runtime:     12.5s
Conclusion: 12.6s