9.9){ return number_format($d); }
elseif ($d>0.0){ return number_format($d,1); }
else { return " "; }
}
// PAGE ////////////////////////////////////////////////
MkMenuForm($Tests,$SelectedTest,$Langs,NULL);
$Row = $Tests[$SelectedTest];
$TestName = $Row[TEST_NAME];
$TestTag = $Row[TEST_TAG];
$TestLink = $Row[TEST_LINK];
list($Succeeded,$Failed,$Special,$Labels,$Ratios) = $Data;
unset($Data);
$first = 0;
$NString = 'N=?';
foreach($Succeeded as $d){
if ($d[DATA_TESTVALUE]>0){
$testValue = (double)$d[DATA_TESTVALUE];
$NString = 'N='.number_format($testValue);
break;
}
}
// BEWARE - Hard coded values - BEWARE
if ($TestName=='fasta'||$TestName=='k-nucleotide'||
$TestName=='reverse-complement'||$TestName=='regex-dna'){
if ($d[DATA_TESTVALUE] == 25000000) { $NString = '≈240MB '.$NString; }
elseif ($d[DATA_TESTVALUE] == 2500000) { $NString = '≈24MB '.$NString; }
elseif ($d[DATA_TESTVALUE] == 5000000) { $NString = '≈50MB '.$NString; }
elseif ($d[DATA_TESTVALUE] == 1000000) { $NString = '≈10MB '.$NString; }
elseif ($d[DATA_TESTVALUE] == 500000) { $NString = '≈5MB '.$NString; }
}
if ($TestName=='startup'){ $NString = ''; }
// Use the table column headers to emphasize the row sort order
$CPU_sort_td = '
sort | ';
$MEM_sort_td = '
sort | ';
$ELAPSED_sort_td = '
sort | ';
$GZBYTES_sort_td = '
sort | ';
if ($Sort=='fullcpu'){
$CPU_sort_td = '
| ';
$Chart_intro_1 = '
how many times slower';
$Chart_intro_2 = 'program was, compared to the fastest program';
} elseif ($Sort=='kb'){
$MEM_sort_td = '
| ';
$Chart_intro_1 = '
how many times more Memory';
$Chart_intro_2 = 'program used, compared to the program that used least Memory';
} elseif ($Sort=='elapsed'){
$ELAPSED_sort_td = '
| ';
$Chart_intro_1 = '
how many times slower';
$Chart_intro_2 = 'program was, compared to the fastest program';
} elseif ($Sort=='gz'){
$GZBYTES_sort_td = '
| ';
$Chart_intro_1 = '
how many times more Code';
$Chart_intro_2 = 'program used, compared to the program that used least Code';
}
if ($CanonicalPage){ echo '
'; }
?>
Each chart bar shows , one ↓ .
These are not the only programs that could be written. These are not the only compilers and interpreters. These are not the only programming languages.
Column × shows how many times more each program used compared to the benchmark program that used least.
diff program output for this 100KB input file (generated with the fasta program N = 10000) with this output file to check your program is correct before contributing.
We are trying to show the performance of various programming language implementations - so we ask that contributed programs not only give the correct result, but also use the same algorithm to calculate that result.
We use FASTA files generated by the fasta benchmark as input for this benchmark. Note: the file may include both lowercase and uppercase codes.
Each program should
- read all of a redirected FASTA format file from stdin, and record the sequence length
- use the same simple regex pattern match-replace to remove FASTA sequence descriptions and all linefeed characters, and record the sequence length
- use the same simple regex patterns, representing DNA 8-mers and their reverse complement (with a wildcard in one position), and (one pattern at a time) count matches in the redirected file
- write the regex pattern and count
- use the same simple regex patterns to make IUB code alternatives explicit, and (one pattern at a time) match-replace the pattern in the redirect file, and record the sequence length
- write the 3 recorded sequence lengths