From fb82ee09a7963f74898c62091f5bce9cc1b1c388 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fabian=20Kl=C3=B6tzl?= Date: Wed, 21 Nov 2018 12:20:12 +0100 Subject: [PATCH] improve parsing performance Doubles throughput; can now parse FASTA at 2GB/s. --- kseq.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; \ -- 2.47.3