Use emplace reserve and std::move to optimize [chromium/src : main]

0 views
Skip to first unread message

Daniel Cheng (Gerrit)

unread,
Mar 23, 2026, 3:22:38 PM (10 days ago) Mar 23
to gate kibr, AyeAye, Lei Zhang, Daniel Cheng, tracing...@chromium.org, wfh+...@chromium.org, spang...@chromium.org, asvitki...@chromium.org, chromiumme...@microsoft.com
Attention needed from Lei Zhang and gate kibr

Daniel Cheng added 4 comments

Patchset-level comments
File-level comment, Patchset 4:
gate kibr . resolved

There are other similar places. Can they be modified together?

Daniel Cheng

1. I think this sort of change is more valuable in conjunction with data that it matters, or when it's a very straightforward transformation. For example, emplace_back(value) or push_back(value) to emplace_back(std::move(value)) or push_back(std::move(value)) is a simple transform to review. Something like "add a reserve()" call is less obviously a benefit.

2. Things like [Abseil's TotW #112](https://abseil.io/tips/112) mean that migrating to use emplace or emplace_back aren't necessarily a straight up win either.

3. I would suggest focusing on other changes for now instead of making more changes like this; there are better ways to use reviewer time.

File base/metrics/field_trial_params.cc
Line 145, Patchset 10 (Latest): auto [it, inserted] = trial_groups.emplace(trial, group);
Daniel Cheng . unresolved

try_emplace() would be better most likely.

File base/threading/hang_watcher.cc
Line 983, Patchset 10 (Latest): static_cast<std::size_t>(debug::CrashKeySize::Size256));
Daniel Cheng . unresolved

I'd probably leave this one; we aren't necessarily going to use up to Size256 bytes anyway.

File base/trace_event/trace_config.cc
Line 663, Patchset 10 (Latest): event_filters_.emplace_back(*predicate_name);
event_filters_.back().InitializeFromConfigDict(event_filter_dict);
Daniel Cheng . unresolved
I believe emplace_back returns a reference now so this can just be:
```suggestion
event_filters_.emplace_back(*predicate_name).InitializeFromConfigDict(
event_filter_dict);
```
Open in Gerrit

Related details

Attention is currently required from:
  • Lei Zhang
  • gate kibr
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I361b379d1a383bd6126bb90fd069d2dca7d31afb
Gerrit-Change-Number: 7688742
Gerrit-PatchSet: 10
Gerrit-Owner: gate kibr <gkv...@gmail.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Lei Zhang <the...@chromium.org>
Gerrit-Attention: gate kibr <gkv...@gmail.com>
Gerrit-Attention: Lei Zhang <the...@chromium.org>
Gerrit-Comment-Date: Mon, 23 Mar 2026 19:22:29 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: gate kibr <gkv...@gmail.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

gate kibr (Gerrit)

unread,
Mar 24, 2026, 1:37:05 AM (10 days ago) Mar 24
to AyeAye, Lei Zhang, Daniel Cheng, tracing...@chromium.org, wfh+...@chromium.org, spang...@chromium.org, asvitki...@chromium.org, chromiumme...@microsoft.com
Attention needed from Daniel Cheng and Lei Zhang

gate kibr added 4 comments

Patchset-level comments
gate kibr . resolved

There are other similar places. Can they be modified together?

Daniel Cheng

1. I think this sort of change is more valuable in conjunction with data that it matters, or when it's a very straightforward transformation. For example, emplace_back(value) or push_back(value) to emplace_back(std::move(value)) or push_back(std::move(value)) is a simple transform to review. Something like "add a reserve()" call is less obviously a benefit.

2. Things like [Abseil's TotW #112](https://abseil.io/tips/112) mean that migrating to use emplace or emplace_back aren't necessarily a straight up win either.

3. I would suggest focusing on other changes for now instead of making more changes like this; there are better ways to use reviewer time.

gate kibr

ok

File base/metrics/field_trial_params.cc
Line 145, Patchset 10: auto [it, inserted] = trial_groups.emplace(trial, group);
Daniel Cheng . resolved

try_emplace() would be better most likely.

gate kibr

trial_groups use std::set

File base/threading/hang_watcher.cc
Line 983, Patchset 10: static_cast<std::size_t>(debug::CrashKeySize::Size256));
Daniel Cheng . resolved

I'd probably leave this one; we aren't necessarily going to use up to Size256 bytes anyway.

gate kibr

Done

File base/trace_event/trace_config.cc
Line 663, Patchset 10: event_filters_.emplace_back(*predicate_name);
event_filters_.back().InitializeFromConfigDict(event_filter_dict);
Daniel Cheng . resolved
I believe emplace_back returns a reference now so this can just be:
```suggestion
event_filters_.emplace_back(*predicate_name).InitializeFromConfigDict(
event_filter_dict);
```
gate kibr

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
  • Lei Zhang
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I361b379d1a383bd6126bb90fd069d2dca7d31afb
    Gerrit-Change-Number: 7688742
    Gerrit-PatchSet: 11
    Gerrit-Owner: gate kibr <gkv...@gmail.com>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Lei Zhang <the...@chromium.org>
    Gerrit-Attention: Lei Zhang <the...@chromium.org>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Comment-Date: Tue, 24 Mar 2026 05:36:58 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: gate kibr <gkv...@gmail.com>
    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages