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.112s
Run:
$ /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): 3192
Result:
Compilation: 8.2s
Runtime: 9.1s
Conclusion: 17.3s
Program: 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.017s
Run:
$ /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): 2308
Result:
Compilation: 0.1s
Runtime: 9.0s
Conclusion: 9.1s
Program: 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.045s
Run:
$ /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): 1244
Result:
Compilation: 0.1s
Runtime: 12.5s
Conclusion: 12.6s