1
0
mirror of https://github.com/golang/go synced 2024-11-22 00:44:39 -07:00

run benchmarks in a relatively fast test mode, as part of run.bash/all.bash

R=rsc
DELTA=293  (224 added, 0 deleted, 69 changed)
OCL=32917
CL=32944
This commit is contained in:
Rob Pike 2009-08-09 14:31:05 -07:00
parent 812f06b3ca
commit 266a2c47e0
11 changed files with 293 additions and 69 deletions

View File

@ -53,6 +53,10 @@ time make test
time ./run time ./run
) || exit $? ) || exit $?
(xcd ../test/bench
./timing.sh -test
) || exit $?
(xcd ../test (xcd ../test
./run ./run
) || exit $? ) || exit $?

View File

@ -42,7 +42,7 @@ import (
"os"; "os";
) )
var n = flag.Int("n", 20, "depth") var n = flag.Int("n", 15, "depth")
type Node struct { type Node struct {
item int; item int;
@ -108,7 +108,7 @@ func main() {
stretchDepth := maxDepth + 1; stretchDepth := maxDepth + 1;
check := bottomUpTree(0, stretchDepth).itemCheck(); check := bottomUpTree(0, stretchDepth).itemCheck();
fmt.Println("stretch tree of depth ", stretchDepth, "\t check:", check); fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check);
longLivedTree := bottomUpTree(0, maxDepth); longLivedTree := bottomUpTree(0, maxDepth);
@ -124,7 +124,7 @@ func main() {
check += t.itemCheck(); check += t.itemCheck();
t.free(); t.free();
} }
fmt.Println(iterations*2, "\t trees of depth ", depth, "\t check: ", check); fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check);
} }
fmt.Println("long lived tree of depth", maxDepth, "\t check:", longLivedTree.itemCheck()); fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck());
} }

View File

@ -0,0 +1,8 @@
stretch tree of depth 16 check: -1
65536 trees of depth 4 check: -65536
16384 trees of depth 6 check: -16384
4096 trees of depth 8 check: -4096
1024 trees of depth 10 check: -1024
256 trees of depth 12 check: -256
64 trees of depth 14 check: -64
long lived tree of depth 15 check: -1

View File

@ -42,7 +42,7 @@ import (
"os"; "os";
) )
var n = flag.Int("n", 20, "depth") var n = flag.Int("n", 15, "depth")
type Node struct { type Node struct {
item int; item int;
@ -75,7 +75,7 @@ func main() {
stretchDepth := maxDepth + 1; stretchDepth := maxDepth + 1;
check := bottomUpTree(0, stretchDepth).itemCheck(); check := bottomUpTree(0, stretchDepth).itemCheck();
fmt.Println("stretch tree of depth ", stretchDepth, "\t check:", check); fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check);
longLivedTree := bottomUpTree(0, maxDepth); longLivedTree := bottomUpTree(0, maxDepth);
@ -87,7 +87,7 @@ func main() {
check += bottomUpTree(i,depth).itemCheck(); check += bottomUpTree(i,depth).itemCheck();
check += bottomUpTree(-i,depth).itemCheck(); check += bottomUpTree(-i,depth).itemCheck();
} }
fmt.Println(iterations*2, "\t trees of depth ", depth, "\t check: ", check); fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check);
} }
fmt.Println("long lived tree of depth", maxDepth, "\t check:", longLivedTree.itemCheck()); fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck());
} }

View File

@ -169,7 +169,7 @@ func (c *Chameneos) Serve() {
func play(ref *Referee, color []Color) { func play(ref *Referee, color []Color) {
cham := make([]Chameneos, len(color)); cham := make([]Chameneos, len(color));
for i, c := range color { for i, c := range color {
fmt.Printf("%s ", c); fmt.Printf(" %s", c);
ref.Add(cham[i].Init(i, ref, c)); ref.Add(cham[i].Init(i, ref, c));
} }
fmt.Printf("\n"); fmt.Printf("\n");
@ -179,7 +179,7 @@ func play(ref *Referee, color []Color) {
total += c.count; total += c.count;
fmt.Printf("%d %s\n", c.count, say(c.same)); fmt.Printf("%d %s\n", c.count, say(c.same));
} }
fmt.Printf("%s\n\n", say(total)); fmt.Printf("%s\n", say(total));
} }
var words = []string{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"} var words = []string{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}
@ -198,5 +198,6 @@ func main() {
printColorTable(); printColorTable();
fmt.Print("\n"); fmt.Print("\n");
play(NewReferee(), []Color{blue, red, yellow}); play(NewReferee(), []Color{blue, red, yellow});
fmt.Print("\n");
play(NewReferee(), []Color{blue, red, yellow, red, yellow, blue, red, yellow, red, blue}); play(NewReferee(), []Color{blue, red, yellow, red, yellow, blue, red, yellow, red, blue});
} }

171
test/bench/fasta-1000.out Normal file
View File

@ -0,0 +1,171 @@
>ONE Homo sapiens alu
GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA
TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT
AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG
GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG
CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT
GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA
GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA
TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG
AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA
GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT
AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC
AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG
GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC
CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG
AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT
TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA
TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT
GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG
TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT
CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG
CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG
TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA
CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG
AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG
GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC
TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA
TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA
GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT
GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC
ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT
TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC
CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG
CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG
GGCGACAGAGCGAGACTCCG
>TWO IUB ambiguity codes
cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg
tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa
NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt
cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga
gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa
HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca
tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt
tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt
acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct
tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt
gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa
accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt
RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt
tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag
cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg
ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat
actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg
YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa
KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata
aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa
aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg
gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc
tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK
tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt
ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg
ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa
BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt
aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc
tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc
cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac
aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga
tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga
aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD
gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg
ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV
taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa
ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat
gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg
gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa
tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt
tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt
taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca
cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag
aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt
cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt
ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW
attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag
ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa
attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc
tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta
>THREE Homo sapiens frequency
aacacttcaccaggtatcgtgaaggctcaagattacccagagaacctttgcaatataaga
atatgtatgcagcattaccctaagtaattatattctttttctgactcaaagtgacaagcc
ctagtgtatattaaatcggtatatttgggaaattcctcaaactatcctaatcaggtagcc
atgaaagtgatcaaaaaagttcgtacttataccatacatgaattctggccaagtaaaaaa
tagattgcgcaaaattcgtaccttaagtctctcgccaagatattaggatcctattactca
tatcgtgtttttctttattgccgccatccccggagtatctcacccatccttctcttaaag
gcctaatattacctatgcaaataaacatatattgttgaaaattgagaacctgatcgtgat
tcttatgtgtaccatatgtatagtaatcacgcgactatatagtgctttagtatcgcccgt
gggtgagtgaatattctgggctagcgtgagatagtttcttgtcctaatatttttcagatc
gaatagcttctatttttgtgtttattgacatatgtcgaaactccttactcagtgaaagtc
atgaccagatccacgaacaatcttcggaatcagtctcgttttacggcggaatcttgagtc
taacttatatcccgtcgcttactttctaacaccccttatgtatttttaaaattacgttta
ttcgaacgtacttggcggaagcgttattttttgaagtaagttacattgggcagactcttg
acattttcgatacgactttctttcatccatcacaggactcgttcgtattgatatcagaag
ctcgtgatgattagttgtcttctttaccaatactttgaggcctattctgcgaaatttttg
ttgccctgcgaacttcacataccaaggaacacctcgcaacatgccttcatatccatcgtt
cattgtaattcttacacaatgaatcctaagtaattacatccctgcgtaaaagatggtagg
ggcactgaggatatattaccaagcatttagttatgagtaatcagcaatgtttcttgtatt
aagttctctaaaatagttacatcgtaatgttatctcgggttccgcgaataaacgagatag
attcattatatatggccctaagcaaaaacctcctcgtattctgttggtaattagaatcac
acaatacgggttgagatattaattatttgtagtacgaagagatataaaaagatgaacaat
tactcaagtcaagatgtatacgggatttataataaaaatcgggtagagatctgctttgca
attcagacgtgccactaaatcgtaatatgtcgcgttacatcagaaagggtaactattatt
aattaataaagggcttaatcactacatattagatcttatccgatagtcttatctattcgt
tgtatttttaagcggttctaattcagtcattatatcagtgctccgagttctttattattg
ttttaaggatgacaaaatgcctcttgttataacgctgggagaagcagactaagagtcgga
gcagttggtagaatgaggctgcaaaagacggtctcgacgaatggacagactttactaaac
caatgaaagacagaagtagagcaaagtctgaagtggtatcagcttaattatgacaaccct
taatacttccctttcgccgaatactggcgtggaaaggttttaaaagtcgaagtagttaga
ggcatctctcgctcataaataggtagactactcgcaatccaatgtgactatgtaatactg
ggaacatcagtccgcgatgcagcgtgtttatcaaccgtccccactcgcctggggagacat
gagaccacccccgtggggattattagtccgcagtaatcgactcttgacaatccttttcga
ttatgtcatagcaatttacgacagttcagcgaagtgactactcggcgaaatggtattact
aaagcattcgaacccacatgaatgtgattcttggcaatttctaatccactaaagcttttc
cgttgaatctggttgtagatatttatataagttcactaattaagatcacggtagtatatt
gatagtgatgtctttgcaagaggttggccgaggaatttacggattctctattgatacaat
ttgtctggcttataactcttaaggctgaaccaggcgtttttagacgacttgatcagctgt
tagaatggtttggactccctctttcatgtcagtaacatttcagccgttattgttacgata
tgcttgaacaatattgatctaccacacacccatagtatattttataggtcatgctgttac
ctacgagcatggtattccacttcccattcaatgagtattcaacatcactagcctcagaga
tgatgacccacctctaataacgtcacgttgcggccatgtgaaacctgaacttgagtagac
gatatcaagcgctttaaattgcatataacatttgagggtaaagctaagcggatgctttat
ataatcaatactcaataataagatttgattgcattttagagttatgacacgacatagttc
actaacgagttactattcccagatctagactgaagtactgatcgagacgatccttacgtc
gatgatcgttagttatcgacttaggtcgggtctctagcggtattggtacttaaccggaca
ctatactaataacccatgatcaaagcataacagaatacagacgataatttcgccaacata
tatgtacagaccccaagcatgagaagctcattgaaagctatcattgaagtcccgctcaca
atgtgtcttttccagacggtttaactggttcccgggagtcctggagtttcgacttacata
aatggaaacaatgtattttgctaatttatctatagcgtcatttggaccaatacagaatat
tatgttgcctagtaatccactataacccgcaagtgctgatagaaaatttttagacgattt
ataaatgccccaagtatccctcccgtgaatcctccgttatactaattagtattcgttcat
acgtataccgcgcatatatgaacatttggcgataaggcgcgtgaattgttacgtgacaga
gatagcagtttcttgtgatatggttaacagacgtacatgaagggaaactttatatctata
gtgatgcttccgtagaaataccgccactggtctgccaatgatgaagtatgtagctttagg
tttgtactatgaggctttcgtttgtttgcagagtataacagttgcgagtgaaaaaccgac
gaatttatactaatacgctttcactattggctacaaaatagggaagagtttcaatcatga
gagggagtatatggatgctttgtagctaaaggtagaacgtatgtatatgctgccgttcat
tcttgaaagatacataagcgataagttacgacaattataagcaacatccctaccttcgta
acgatttcactgttactgcgcttgaaatacactatggggctattggcggagagaagcaga
tcgcgccgagcatatacgagacctataatgttgatgatagagaaggcgtctgaattgata
catcgaagtacactttctttcgtagtatctctcgtcctctttctatctccggacacaaga
attaagttatatatatagagtcttaccaatcatgttgaatcctgattctcagagttcttt
ggcgggccttgtgatgactgagaaacaatgcaatattgctccaaatttcctaagcaaatt
ctcggttatgttatgttatcagcaaagcgttacgttatgttatttaaatctggaatgacg
gagcgaagttcttatgtcggtgtgggaataattcttttgaagacagcactccttaaataa
tatcgctccgtgtttgtatttatcgaatgggtctgtaaccttgcacaagcaaatcggtgg
tgtatatatcggataacaattaatacgatgttcatagtgacagtatactgatcgagtcct
ctaaagtcaattacctcacttaacaatctcattgatgttgtgtcattcccggtatcgccc
gtagtatgtgctctgattgaccgagtgtgaaccaaggaacatctactaatgcctttgtta
ggtaagatctctctgaattccttcgtgccaacttaaaacattatcaaaatttcttctact
tggattaactacttttacgagcatggcaaattcccctgtggaagacggttcattattatc
ggaaaccttatagaaattgcgtgttgactgaaattagatttttattgtaagagttgcatc
tttgcgattcctctggtctagcttccaatgaacagtcctcccttctattcgacatcgggt
ccttcgtacatgtctttgcgatgtaataattaggttcggagtgtggccttaatgggtgca
actaggaatacaacgcaaatttgctgacatgatagcaaatcggtatgccggcaccaaaac
gtgctccttgcttagcttgtgaatgagactcagtagttaaataaatccatatctgcaatc
gattccacaggtattgtccactatctttgaactactctaagagatacaagcttagctgag
accgaggtgtatatgactacgctgatatctgtaaggtaccaatgcaggcaaagtatgcga
gaagctaataccggctgtttccagctttataagattaaaatttggctgtcctggcggcct
cagaattgttctatcgtaatcagttggttcattaattagctaagtacgaggtacaactta
tctgtcccagaacagctccacaagtttttttacagccgaaacccctgtgtgaatcttaat
atccaagcgcgttatctgattagagtttacaactcagtattttatcagtacgttttgttt
ccaacattacccggtatgacaaaatgacgccacgtgtcgaataatggtctgaccaatgta
ggaagtgaaaagataaatat

View File

@ -1,27 +1,27 @@
A 30.284 T 31.520
T 29.796 A 29.600
C 20.312 C 19.480
G 19.608 G 19.400
AA 9.212 AT 9.922
AT 8.950 TT 9.602
TT 8.948 TA 9.402
TA 8.936 AA 8.402
CA 6.166 GA 6.321
CT 6.100 TC 6.301
AC 6.086 TG 6.201
TC 6.042 GT 6.041
AG 6.036 CT 5.961
GA 5.968 AG 5.841
TG 5.868 CA 5.461
GT 5.798 AC 5.441
CC 4.140 CC 4.041
GC 4.044 CG 4.021
CG 3.906 GC 3.701
GG 3.798 GG 3.341
562 GGT 54 GGT
152 GGTA 24 GGTA
15 GGTATT 4 GGTATT
0 GGTATTTTAATT 0 GGTATTTTAATT
0 GGTATTTTAATTTATAGT 0 GGTATTTTAATTTATAGT

View File

@ -1,2 +1,2 @@
-0.169075164 -0.169075164
-0.169059907 -0.169087605

View File

@ -1,13 +1,13 @@
agggtaaa|tttaccct 0 agggtaaa|tttaccct 1
[cgt]gggtaaa|tttaccc[acg] 3 [cgt]gggtaaa|tttaccc[acg] 0
a[act]ggtaaa|tttacc[agt]t 9 a[act]ggtaaa|tttacc[agt]t 0
ag[act]gtaaa|tttac[agt]ct 8 ag[act]gtaaa|tttac[agt]ct 0
agg[act]taaa|ttta[agt]cct 10 agg[act]taaa|ttta[agt]cct 1
aggg[acg]aaa|ttt[cgt]ccct 3 aggg[acg]aaa|ttt[cgt]ccct 0
agggt[cgt]aa|tt[acg]accct 4 agggt[cgt]aa|tt[acg]accct 0
agggta[cgt]a|t[acg]taccct 3 agggta[cgt]a|t[acg]taccct 0
agggtaa[cgt]|[acg]ttaccct 5 agggtaa[cgt]|[acg]ttaccct 2
101745 10245
100000 10000
133640 13348

View File

@ -1 +1 @@
292 498

View File

@ -6,6 +6,13 @@
set -e set -e
. $GOROOT/src/Make.$GOARCH . $GOROOT/src/Make.$GOARCH
mode=run
case X"$1" in
X-test)
mode=test
shift
esac
gc() { gc() {
$GC $1.go; $LD $1.$O $GC $1.go; $LD $1.$O
} }
@ -14,7 +21,40 @@ gc_B() {
$GC -B $1.go; $LD $1.$O $GC -B $1.go; $LD $1.$O
} }
runonly() {
if [ $mode = run ]
then
"$@"
fi
}
run() { run() {
if [ $mode = test ]
then
if echo $1 | grep -q '^gc '
then
$1 # compile the program
program=$(echo $1 | sed 's/gc //')
shift
echo $program
$1 <fasta-1000.out > /tmp/$$
case $program in
chameneosredux)
# exact numbers may vary but non-numbers should match
grep -v '[0-9]' /tmp/$$ > /tmp/$$x
grep -v '[0-9]' chameneosredux.txt > /tmp/$$y
cmp /tmp/$$x /tmp/$$y
rm -f /tmp/$$ /tmp/$$x /tmp/$$y
;;
*)
cmp /tmp/$$ $program.txt
rm -f /tmp/$$
esac
fi
return
fi
echo -n ' '$1' ' echo -n ' '$1' '
$1 $1
shift shift
@ -22,7 +62,7 @@ run() {
} }
fasta() { fasta() {
echo 'fasta -n 25000000' runonly echo 'fasta -n 25000000'
run 'gcc -O2 fasta.c' a.out 25000000 run 'gcc -O2 fasta.c' a.out 25000000
#run 'gccgo -O2 fasta.go' a.out -n 25000000 #commented out until WriteString is in bufio #run 'gccgo -O2 fasta.go' a.out -n 25000000 #commented out until WriteString is in bufio
run 'gc fasta' $O.out -n 25000000 run 'gc fasta' $O.out -n 25000000
@ -30,9 +70,9 @@ fasta() {
} }
revcomp() { revcomp() {
gcc -O2 fasta.c runonly gcc -O2 fasta.c
a.out 25000000 > x runonly a.out 25000000 > x
echo 'reverse-complement < output-of-fasta-25000000' runonly echo 'reverse-complement < output-of-fasta-25000000'
run 'gcc -O2 reverse-complement.c' a.out < x run 'gcc -O2 reverse-complement.c' a.out < x
run 'gccgo -O2 reverse-complement.go' a.out < x run 'gccgo -O2 reverse-complement.go' a.out < x
run 'gc reverse-complement' $O.out < x run 'gc reverse-complement' $O.out < x
@ -41,7 +81,7 @@ revcomp() {
} }
nbody() { nbody() {
echo 'nbody -n 50000000' runonly echo 'nbody -n 50000000'
run 'gcc -O2 nbody.c' a.out 50000000 run 'gcc -O2 nbody.c' a.out 50000000
run 'gccgo -O2 nbody.go' a.out -n 50000000 run 'gccgo -O2 nbody.go' a.out -n 50000000
run 'gc nbody' $O.out -n 50000000 run 'gc nbody' $O.out -n 50000000
@ -49,7 +89,7 @@ nbody() {
} }
binarytree() { binarytree() {
echo 'binary-tree 15 # too slow to use 20' runonly echo 'binary-tree 15 # too slow to use 20'
run 'gcc -O2 binary-tree.c -lm' a.out 15 run 'gcc -O2 binary-tree.c -lm' a.out 15
run 'gccgo -O2 binary-tree.go' a.out -n 15 run 'gccgo -O2 binary-tree.go' a.out -n 15
run 'gccgo -O2 binary-tree-freelist.go' $O.out -n 15 run 'gccgo -O2 binary-tree-freelist.go' $O.out -n 15
@ -58,7 +98,7 @@ binarytree() {
} }
fannkuch() { fannkuch() {
echo 'fannkuch 12' runonly echo 'fannkuch 12'
run 'gcc -O2 fannkuch.c' a.out 12 run 'gcc -O2 fannkuch.c' a.out 12
run 'gccgo -O2 fannkuch.go' a.out -n 12 run 'gccgo -O2 fannkuch.go' a.out -n 12
run 'gc fannkuch' $O.out -n 12 run 'gc fannkuch' $O.out -n 12
@ -66,9 +106,9 @@ fannkuch() {
} }
regexdna() { regexdna() {
gcc -O2 fasta.c runonly gcc -O2 fasta.c
a.out 100000 > x runonly a.out 100000 > x
echo 'regex-dna 100000' runonly echo 'regex-dna 100000'
run 'gcc -O2 regex-dna.c -lpcre' a.out <x run 'gcc -O2 regex-dna.c -lpcre' a.out <x
# run 'gccgo -O2 regex-dna.go' a.out <x # pages badly; don't run # run 'gccgo -O2 regex-dna.go' a.out <x # pages badly; don't run
run 'gc regex-dna' $O.out <x run 'gc regex-dna' $O.out <x
@ -77,7 +117,7 @@ regexdna() {
} }
spectralnorm() { spectralnorm() {
echo 'spectral-norm 5500' runonly echo 'spectral-norm 5500'
run 'gcc -O2 spectral-norm.c -lm' a.out 5500 run 'gcc -O2 spectral-norm.c -lm' a.out 5500
run 'gccgo -O2 spectral-norm.go' a.out -n 5500 run 'gccgo -O2 spectral-norm.go' a.out -n 5500
run 'gc spectral-norm' $O.out -n 5500 run 'gc spectral-norm' $O.out -n 5500
@ -85,9 +125,9 @@ spectralnorm() {
} }
knucleotide() { knucleotide() {
gcc -O2 fasta.c runonly gcc -O2 fasta.c
a.out 1000000 > x # should be using 25000000 runonly a.out 1000000 > x # should be using 25000000
echo 'k-nucleotide 1000000' runonly echo 'k-nucleotide 1000000'
run 'gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0' a.out <x run 'gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0' a.out <x
run 'gccgo -O2 k-nucleotide.go' a.out <x # warning: pages badly! run 'gccgo -O2 k-nucleotide.go' a.out <x # warning: pages badly!
run 'gc k-nucleotide' $O.out <x run 'gc k-nucleotide' $O.out <x
@ -96,7 +136,7 @@ knucleotide() {
} }
mandelbrot() { mandelbrot() {
echo 'mandelbrot 16000' runonly echo 'mandelbrot 16000'
run 'gcc -O2 mandelbrot.c' a.out 16000 run 'gcc -O2 mandelbrot.c' a.out 16000
run 'gccgo -O2 mandelbrot.go' a.out -n 16000 run 'gccgo -O2 mandelbrot.go' a.out -n 16000
run 'gc mandelbrot' $O.out -n 16000 run 'gc mandelbrot' $O.out -n 16000
@ -104,7 +144,7 @@ mandelbrot() {
} }
meteor() { meteor() {
echo 'meteor 16000' runonly echo 'meteor 16000'
run 'gcc -O2 meteor-contest.c' a.out run 'gcc -O2 meteor-contest.c' a.out
run 'gccgo -O2 meteor-contest.go' a.out run 'gccgo -O2 meteor-contest.go' a.out
run 'gc meteor-contest' $O.out run 'gc meteor-contest' $O.out
@ -112,7 +152,7 @@ meteor() {
} }
pidigits() { pidigits() {
echo 'pidigits 10000' runonly echo 'pidigits 10000'
run 'gcc -O2 pidigits.c -lgmp' a.out 10000 run 'gcc -O2 pidigits.c -lgmp' a.out 10000
# run 'gccgo -O2 pidigits.go' a.out -n 10000 # uncomment when gccgo library updated # run 'gccgo -O2 pidigits.go' a.out -n 10000 # uncomment when gccgo library updated
run 'gc pidigits' $O.out -n 10000 run 'gc pidigits' $O.out -n 10000
@ -120,14 +160,14 @@ pidigits() {
} }
threadring() { threadring() {
echo 'threadring 50000000' runonly echo 'threadring 50000000'
run 'gcc -O2 threadring.c -lpthread' a.out 50000000 run 'gcc -O2 threadring.c -lpthread' a.out 50000000
run 'gccgo -O2 threadring.go' a.out -n 50000000 run 'gccgo -O2 threadring.go' a.out -n 50000000
run 'gc threadring' $O.out -n 50000000 run 'gc threadring' $O.out -n 50000000
} }
chameneos() { chameneos() {
echo 'chameneos 6000000' runonly echo 'chameneos 6000000'
run 'gcc -O2 chameneosredux.c -lpthread' a.out 6000000 run 'gcc -O2 chameneosredux.c -lpthread' a.out 6000000
# run 'gccgo -O2 chameneosredux.go' a.out -n 6000000 # doesn't support the non-forward-decl variant # run 'gccgo -O2 chameneosredux.go' a.out -n 6000000 # doesn't support the non-forward-decl variant
run 'gc chameneosredux' $O.out -n 6000000 run 'gc chameneosredux' $O.out -n 6000000
@ -144,5 +184,5 @@ esac
for i in $run for i in $run
do do
$i $i
echo runonly echo
done done