From: Fabian Klötzl Date: Wed, 21 Nov 2018 11:20:12 +0000 (+0100) Subject: improve parsing performance X-Git-Url: http://www.kaiwu.me/sitemap.xml?a=commitdiff_plain;h=fb82ee09a7963f74898c62091f5bce9cc1b1c388;p=klib.git improve parsing performance Doubles throughput; can now parse FASTA at 2GB/s. --- diff --git a/kseq.h b/kseq.h index 2f94a64..99c9ea2 100644 --- a/kseq.h +++ b/kseq.h @@ -108,8 +108,8 @@ typedef struct __kstring_t { } else break; \ } \ if (delimiter == KS_SEP_LINE) { \ - for (i = ks->begin; i < ks->end; ++i) \ - if (ks->buf[i] == '\n') break; \ + unsigned char *sep = memchr(ks->buf + ks->begin, '\n', ks->end - ks->begin); \ + i = sep != NULL ? sep - ks->buf : ks->end; \ } else if (delimiter > KS_SEP_MAX) { \ for (i = ks->begin; i < ks->end; ++i) \ if (ks->buf[i] == delimiter) break; \