Reducing memory allocation events

Former-commit-id: c94e79ba116464504580fc397270ead154063971
This commit is contained in:
Eric Coissac
2024-06-22 22:32:31 +02:00
parent e6b87ecd02
commit 93f9dcb95f
8 changed files with 98 additions and 46 deletions

View File

@ -15,6 +15,7 @@ import (
"slices"
"sync"
"sync/atomic"
"unsafe"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
@ -279,7 +280,8 @@ func (s *BioSequence) QualitiesString() string {
quality_shift := obioptions.OutputQualityShift()
qual := s.Qualities()
qual_ascii := GetSlice(len(qual))[0:len(qual)]
qual_ascii := make([]byte, len(qual))
for i := 0; i < len(qual); i++ {
quality := qual[i]
if quality > 93 {
@ -287,8 +289,8 @@ func (s *BioSequence) QualitiesString() string {
}
qual_ascii[i] = quality + quality_shift
}
qual_sting := string(qual_ascii)
RecycleSlice(&qual_ascii)
qual_sting := unsafe.String(unsafe.SliceData(qual_ascii), len(qual))
return qual_sting
}