From: Tom Clegg Date: Fri, 31 Jan 2020 07:28:23 +0000 (-0500) Subject: Reduce allocs while tiling. X-Git-Url: https://git.arvados.org/lightning.git/commitdiff_plain/8b502b6aa170db7cc993a509d1796ff0cd6ca0a9 Reduce allocs while tiling. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/tilelib.go b/tilelib.go index cfe91fb49f..fd8476b8d6 100644 --- a/tilelib.go +++ b/tilelib.go @@ -53,12 +53,13 @@ func (tilelib *tileLibrary) TileFasta(filelabel string, rdr io.Reader) (tileSeq, } todo <- jobT{seqlabel, fasta} }() + path := make([]tileLibRef, 2000000) for job := range todo { if len(job.fasta) == 0 { continue } log.Printf("%s %s tiling", filelabel, job.label) - var path []tileLibRef + path = path[:0] tilestart := -1 // position in fasta of tile that ends here tiletagid := tagID(-1) // tag id starting tile that ends here tilelib.taglib.FindAll(job.fasta, func(id tagID, pos, taglen int) { @@ -71,7 +72,9 @@ func (tilelib *tileLibrary) TileFasta(filelabel string, rdr io.Reader) (tileSeq, if tiletagid >= 0 { path = append(path, tilelib.getRef(tiletagid, job.fasta[tilestart:])) } - ret[job.label] = path + pathcopy := make([]tileLibRef, len(path)) + copy(pathcopy, path) + ret[job.label] = pathcopy log.Printf("%s %s tiled with path len %d", filelabel, job.label, len(path)) } return ret, scanner.Err()