commit | 4f70b49579452217659f1eb3c12a8f5930375e15 | [log] [tgz] |
---|---|---|
author | Mikhail Khokhlov <khokhlov@google.com> | Wed Aug 09 15:33:07 2023 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Aug 09 15:39:51 2023 |
tree | a63643235f30a1c4deadaf96652c2cd0ab1ca5d1 | |
parent | 15dd22656a8e0856d20b2e19207dddf82a0097ba [diff] |
[Tracing] Use Perfetto client library for tracing on Android This CL switches the Chrome tracing backend to Perfetto client library. It means that Chrome on Android will use a different set of TRACE_EVENT* macros that call Perfetto client API under the hood. The Perfetto backend has been the default on desktop Linux since March. Now we make it the default on Android too. Our end goal is to make Perfetto the default backend on all platforms, unblocking multiple improvements in tracing stability and usefulness. Significant effort has been made to make the binary size impact as small as possible, but some overhead remains. See this thread: https://groups.google.com/a/google.com/d/msgid/woa-performance-team/CABiQX1XriNOZcYRBtO2JWq2Uzqbgjh_4ZMuXXaPJUdp%3DvkTZ-g%40mail.gmail.com for more info and discussion. Binary-Size: See above. Bug: 1006541 Change-Id: Ia6ab96a6f3402f446fefab872c41686f480c2ed5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4701264 Reviewed-by: Eric Seckler <eseckler@chromium.org> Reviewed-by: Andrew Grieve <agrieve@chromium.org> Commit-Queue: Mikhail Khokhlov <khokhlov@google.com> Cr-Commit-Position: refs/heads/main@{#1181499} NOKEYCHECK=True GitOrigin-RevId: 915cca4e568f662cbfc0f4a47c2911550225c352
This directory is used to allow different products to customize settings for repos that are DEPS'ed in or shared.
For example: V8 could be built on its own (in a “standalone” configuration), and it could be built as part of Chromium. V8 might define a top-level target, //v8:d8 (a simple executable), that should only be built in the standalone configuration. To figure out whether or not it should be in a standalone configuration, v8 can create a file, build_overrides/v8.gni, that contains a variable, build_standalone_d8 = true
. and import it (as import(“//build_overrides/v8.gni”) from its top-level BUILD.gn file.
Chromium, on the other hand, might not need to build d8, and so it would create its own build_overrides/v8.gni file, and in it set build_standalone_d8 = false
.
The two files should define the same set of variables, but the values can vary as appropriate to the needs of the two different builds.
The build.gni file provides a way for projects to override defaults for variables used in //build itself (which we want to be shareable between projects).
TODO(crbug.com/588513): Ideally //build_overrides and, in particular, //build_overrides/build.gni should go away completely in favor of some mechanism that can re-use other required files like //.gn, so that we don't have to keep requiring projects to create a bunch of different files to use GN.