x64 Ubuntu : Intel® Q6600® quad-core |
Each chart bar shows how many times more Time or how many times more Memory one unidentified ↓ fasta program used, compared to the program that used least Time or the program that used least Memory.
This table shows 5 measurements - CPU Time, Elapsed Time, Memory, Code and ~ CPU Load.
Compare how much Memory the fasta programs used - sort Memory KB. Compare how much Code the programs used - sort Code B
Column × shows how many times more each program used compared to the program that used least.
| sort | sort | sort | sort | |||
|---|---|---|---|---|---|---|
| × | Program Source Code | CPU secs | Elapsed secs | Memory KB | Code B | ~ CPU Load |
| 1.0 | C++ GNU g++ | 2.26 | 2.26 | 964 | 1470 | 100% 0% 1% 0% |
| 2.3 | ATS | 5.19 | 5.19 | 508 | 2257 | 0% 2% 98% 1% |
| 2.5 | C GNU gcc #4 | 5.74 | 5.73 | 476 | 1221 | 0% 0% 100% 0% |
| 2.7 | C++ GNU g++ #4 | 6.13 | 6.13 | 912 | 1266 | 100% 0% 0% 0% |
| 2.9 | Ada 2005 GNAT #4 | 6.54 | 6.55 | 1,576 | 1623 | 0% 0% 0% 100% |
| 3.4 | Go 6g 8g | 7.79 | 7.79 | 760 | 1058 | 0% 100% 0% 0% |
| 3.6 | Java 6 -server #2 | 8.24 | 8.22 | 15,144 | 1240 | 0% 1% 0% 100% |
| 3.7 | C GNU gcc | 8.31 | 8.30 | 540 | 1185 | 0% 0% 100% 0% |
| 3.7 | C# Mono #2 | 8.40 | 8.40 | 5,228 | 1180 | 0% 100% 0% 0% |
| 3.8 | Fortran Intel | 8.54 | 8.54 | 488 | 1155 | 0% 0% 99% 0% |
| 4.0 | Scala | 8.98 | 9.01 | 16,048 | 1207 | 95% 0% 0% 5% |
| 4.4 | Ada 2005 GNAT | 9.95 | 9.95 | 1,496 | 1346 | 0% 0% 100% 0% |
| 5.0 | Clean | 11.41 | 11.41 | 1,624 | 1420 | 0% 0% 100% 0% |
| 5.8 | Pascal Free Pascal #4 | 13.08 | 13.08 | 220 | 1112 | 0% 0% 99% 0% |
| 6.1 | OCaml #3 | 13.82 | 13.82 | 1,000 | 1042 | 0% 0% 100% 0% |
| 6.6 | Lisp SBCL | 15.00 | 15.00 | 6,888 | 1419 | 0% 0% 0% 100% |
| 7.0 | F# Mono | 15.94 | 15.94 | 7,468 | 1057 | 0% 100% 0% 0% |
| 7.1 | Lisp SBCL #2 | 16.09 | 16.10 | 6,904 | 1617 | 99% 0% 0% 0% |
| 7.6 | Haskell GHC #2 | 17.25 | 17.25 | 1,904 | 1096 | 0% 0% 100% 0% |
| 13 | Erlang HiPE #2 | 30.01 | 30.01 | 9,200 | 1164 | 100% 1% 1% 1% |
| 18 | JavaScript V8 #2 | 41.23 | 41.24 | 28,980 | 923 | 0% 100% 0% 0% |
| 21 | Smalltalk VisualWorks | 47.28 | 47.27 | 22,712 | 1171 | 0% 100% 0% 0% |
| 22 | Java 6 -Xint #2 | 49.27 | 49.27 | 12,024 | 1240 | 100% 0% 0% 0% |
| 23 | Lua | 51.72 | 51.72 | 1,448 | 1039 | 0% 0% 100% 0% |
| 25 | Scheme PLT | 56.08 | 56.09 | 8,844 | 1053 | 100% 0% 0% 0% |
| 27 | Scheme PLT #2 | 60.46 | 60.45 | 12,640 | 1055 | 4% 100% 3% 2% |
| 29 | Lua #2 | 65.61 | 65.60 | 1,140 | 993 | 1% 3% 3% 100% |
| 30 | Erlang HiPE | 69.02 | 69.02 | 9,096 | 1039 | 99% 0% 0% 0% |
| 39 | JavaScript V8 | 87.20 | 87.20 | 9,220 | 791 | 0% 0% 100% 0% |
| 60 | JavaScript TraceMonkey #2 | 135.09 | 136.49 | 104,300 | 923 | 30% 21% 24% 28% |
| 74 | Python CPython #2 | 167.44 | 167.51 | 3,640 | 779 | 44% 29% 28% 1% |
| 88 | JavaScript TraceMonkey | 198.73 | 198.85 | 80,216 | 791 | 16% 18% 31% 36% |
| 89 | PHP #3 | 202.35 | 202.35 | 4,252 | 1030 | 0% 0% 100% 0% |
| 139 | Perl #4 | 5 min | 5 min | 2,548 | 934 | 100% 0% 0% 0% |
| 201 | Ruby JRuby | 7 min | 7 min | 311,544 | 744 | 26% 23% 18% 34% |
| 212 | Perl #2 | 8 min | 8 min | 2,536 | 886 | 0% 100% 0% 0% |
| 289 | PHP #2 | 10 min | 10 min | 4,244 | 1007 | 49% 0% 0% 50% |
| 289 | Ruby MRI #2 | 10 min | 10 min | 197,644 | 732 | 0% 1% 0% 100% |
| interesting alternative programs | ||||||
| 5.3 | OCaml | 11.96 | 11.96 | 1,000 | 1046 | |
| 5.6 | OCaml #2 | 12.63 | 12.63 | 1,000 | 984 | |
| 6.4 | Haskell GHC #3 | 14.45 | 14.45 | 1,936 | 1406 | |
| 79 | Ruby MRI #3 | 177.95 | 177.96 | 102,272 | 848 | |
| 111 | Perl | 250.74 | 250.76 | 2,532 | 791 | |
| missing programs | ||||||
| Java 6 steady state | No program | |||||
diff program output N = 1000 with this 10KB output file to check your program is correct before contributing.
Each program should
IM = 139968 IA = 3877 IC = 29573 Seed = 42 Random (Max) Seed = (Seed * IA + IC) modulo IM = Max * Seed / IM
We'll use the generated FASTA file as input for other benchmarks (reverse-complement, k-nucleotide).
Random DNA sequences can be based on a variety of Random Models (554KB pdf). You can use Markov chains or independently distributed nucleotides to generate random DNA sequences online.