Skip to content

Commit c89f2a5

Browse files
committed
(improvement)SegmentCodec - remove redundant len() calls in compress code paths.
Minor perf. improvement (very) if compression is used - or not: do not call len() for the buffer redundantly. Signed-off-by: Yaniv Kaul <[email protected]>
1 parent 9b46f1d commit c89f2a5

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

cassandra/segment.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,32 +153,33 @@ def _encode_segment(self, buffer, payload, is_self_contained):
153153
compressed_payload = self.compress(uncompressed_payload)
154154
if len(compressed_payload) >= uncompressed_payload_length:
155155
encoded_payload = uncompressed_payload
156+
payload_length = uncompressed_payload_length
156157
uncompressed_payload_length = 0
157158
else:
158159
encoded_payload = compressed_payload
160+
payload_length = len(compressed_payload)
159161
else:
160162
encoded_payload = uncompressed_payload
161-
162-
payload_length = len(encoded_payload)
163+
payload_length = uncompressed_payload_length
163164
self.encode_header(buffer, payload_length, uncompressed_payload_length, is_self_contained)
164165
payload_crc = compute_crc32(encoded_payload, CRC32_INITIAL)
165166
buffer.write(encoded_payload)
166167
write_uint_le(buffer, payload_crc)
167168

168169
def encode(self, buffer, msg):
169170
"""
170-
Encode a message to one of more segments.
171+
Encode a message to one or more segments.
171172
"""
172173
msg_length = len(msg)
173174

174175
if msg_length > Segment.MAX_PAYLOAD_LENGTH:
175176
payloads = []
176177
for i in range(0, msg_length, Segment.MAX_PAYLOAD_LENGTH):
177178
payloads.append(msg[i:i + Segment.MAX_PAYLOAD_LENGTH])
179+
is_self_contained = False
178180
else:
179181
payloads = [msg]
180-
181-
is_self_contained = len(payloads) == 1
182+
is_self_contained = True
182183
for payload in payloads:
183184
self._encode_segment(buffer, payload, is_self_contained)
184185

0 commit comments

Comments
 (0)