From 82dd790c74dfdc7139659c34f659b287da128c09 Mon Sep 17 00:00:00 2001 From: ZhangYu0123 Date: Fri, 14 Aug 2020 10:06:39 +0800 Subject: [PATCH 1/2] Optimise coding bit operation --- be/src/util/coding.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/src/util/coding.h b/be/src/util/coding.h index 714c68abaa4ea3..216dceb9a28f6a 100644 --- a/be/src/util/coding.h +++ b/be/src/util/coding.h @@ -143,7 +143,7 @@ extern uint8_t* encode_varint64(uint8_t* dst, uint64_t value); inline uint8_t* encode_varint64(uint8_t* dst, uint64_t v) { static const unsigned int B = 128; while (v >= B) { - *(dst++) = (v & (B - 1)) | B; + *(dst++) = v | B; v >>= 7; } *(dst++) = static_cast(v); From 77444f137b0bc9c4f2976f1089d4222bcaa871d5 Mon Sep 17 00:00:00 2001 From: ZhangYu0123 Date: Tue, 18 Aug 2020 11:15:16 +0800 Subject: [PATCH 2/2] add comment --- be/src/util/coding.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/be/src/util/coding.h b/be/src/util/coding.h index 216dceb9a28f6a..57e839f6d1ecd7 100644 --- a/be/src/util/coding.h +++ b/be/src/util/coding.h @@ -143,6 +143,9 @@ extern uint8_t* encode_varint64(uint8_t* dst, uint64_t value); inline uint8_t* encode_varint64(uint8_t* dst, uint64_t v) { static const unsigned int B = 128; while (v >= B) { + // Fetch low seven bits from current v, and the eight bit is marked as compression mark. + // v | B is optimsed from (v & (B-1)) | B, because result is assgined to uint8_t and other bits + // is cleared by implicit conversion. *(dst++) = v | B; v >>= 7; }