Multi-threading or multi-processing, how to know which to use and when?

So the lookup in this vector could be a serious bottleneck. Maybe building a Set would help? Should be as easy as Set(passContig) instead of passContig. But you should hoist it outside the reader loop:

setPassContig = Set(passContig)
while !eof(reader)
    read!(reader, record)
    if FASTA.identifier(record) in setPassContig
        write(writer, record)
    end
end

BTW, did you try to use a Profiler on your problem?

1 Like