Skip to content

Commit 73f3469

Browse files
Add nontemporal software prefetcher to repeated ptr field dtor to improve performance.
PiperOrigin-RevId: 741188927
1 parent 5e933cf commit 73f3469

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/google/protobuf/repeated_ptr_field.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,9 @@ class PROTOBUF_EXPORT RepeatedPtrFieldBase {
246246
ABSL_DCHECK_LE(n, Capacity());
247247
void** elems = elements();
248248
for (int i = 0; i < n; i++) {
249+
if (i + 5 < n) {
250+
absl::PrefetchToLocalCacheNta(elems[i + 5]);
251+
}
249252
Delete<H>(elems[i], nullptr);
250253
}
251254
if (!using_sso()) {

0 commit comments

Comments
 (0)