--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAKqK8Mn%2BwrjRgvQgzp6NkXsPz9db4gzmwzfCDPS6wOPaNsYmeg%40mail.gmail.com.
--
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAKs%2B6oOttO4_kvAqFUf%2BNRUH5f8PMbtWh98cQmjuDVcXrUpEtA%40mail.gmail.com.
…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to ship
On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.
And FWIW, even at least one of the Chrome official builders (the Windows ASAN builds) sets "chrome_pgo_phase = 0", so maybe they're trying to duplicate that?
On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)
And FWIW, even at least one of the Chrome official builders (the Windows ASAN builds) sets "chrome_pgo_phase = 0", so maybe they're trying to duplicate that?The official Win Asan bot usually builds stuff for A/B tests
On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.
On Thu, May 14, 2020 at 1:38 AM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.If it's Chromium-based browsers with not too many downstream patches to core code (blink etc), then the profiles we provide should work pretty well for them.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAMGbLiFvWnL2wNkmLwOY%3DbkxVzg3NDBYm1unW%2B%2By70V%2ByjYDqg%40mail.gmail.com.
On May 14, 2020, at 3:08 PM, Nico Weber <tha...@chromium.org> wrote:On Thu, May 14, 2020 at 1:38 AM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.If it's Chromium-based browsers with not too many downstream patches to core code (blink etc), then the profiles we provide should work pretty well for them.If we wanted to try these profiles with other Chromium-based browsers, what would be the recommended way to measure “work[s] pretty well”? Is there a documented way to generate new profiles based on our own Chromium-based binaries, and integrate those profiles via Chromium tooling for build and comparison purposes?
On Thu, May 14, 2020 at 3:31 PM Marshall Greenblatt <magree...@gmail.com> wrote:On May 14, 2020, at 3:08 PM, Nico Weber <tha...@chromium.org> wrote:On Thu, May 14, 2020 at 1:38 AM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.If it's Chromium-based browsers with not too many downstream patches to core code (blink etc), then the profiles we provide should work pretty well for them.If we wanted to try these profiles with other Chromium-based browsers, what would be the recommended way to measure “work[s] pretty well”? Is there a documented way to generate new profiles based on our own Chromium-based binaries, and integrate those profiles via Chromium tooling for build and comparison purposes?You could evaluate the impact of these profiles by looking at some of your core success metrics (whether it's a synthetic benchmark score or some user metrics) and compare this to a non-PGO build (add chrome_pgo_phase=0 to your GN args).I'll work on documenting the profiling step once we have made more progress on the project (it's still not sure if it'll stick). The summary is that you need to:
- Do a local build with the |chrome_pgo_phase=1| flag. This will produce the instrumented build (I recommend disabling the symbols for this build as it makes the linker use a LOT of memory).
- Run some profiling scenarios with this build.
- Merge the raw profiling data (the *.profraw files generated when running the build) with the llvm-profdata utility (you need to add |"checkout_clang_coverage_tools": True| to your .gclient custom_vars section for gclient to fetch this tool).
- Build with this profile, you can specify the profile to use via the |pgo_data_path| GN variable.
On May 14, 2020, at 3:52 PM, Sébastien Marchand <sebma...@chromium.org> wrote:On Thu, May 14, 2020 at 3:31 PM Marshall Greenblatt <magree...@gmail.com> wrote:On May 14, 2020, at 3:08 PM, Nico Weber <tha...@chromium.org> wrote:On Thu, May 14, 2020 at 1:38 AM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.If it's Chromium-based browsers with not too many downstream patches to core code (blink etc), then the profiles we provide should work pretty well for them.If we wanted to try these profiles with other Chromium-based browsers, what would be the recommended way to measure “work[s] pretty well”? Is there a documented way to generate new profiles based on our own Chromium-based binaries, and integrate those profiles via Chromium tooling for build and comparison purposes?You could evaluate the impact of these profiles by looking at some of your core success metrics (whether it's a synthetic benchmark score or some user metrics) and compare this to a non-PGO build (add chrome_pgo_phase=0 to your GN args).I'll work on documenting the profiling step once we have made more progress on the project (it's still not sure if it'll stick). The summary is that you need to:
- Do a local build with the |chrome_pgo_phase=1| flag. This will produce the instrumented build (I recommend disabling the symbols for this build as it makes the linker use a LOT of memory).
- Run some profiling scenarios with this build.
- Merge the raw profiling data (the *.profraw files generated when running the build) with the llvm-profdata utility (you need to add |"checkout_clang_coverage_tools": True| to your .gclient custom_vars section for gclient to fetch this tool).
- Build with this profile, you can specify the profile to use via the |pgo_data_path| GN variable.
On Thu, May 14, 2020 at 1:38 AM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.If it's Chromium-based browsers with not too many downstream patches to core code (blink etc), then the profiles we provide should work pretty well for them.I don't know why someone using pdfium would set this though. To me, the flag always meant something like "use the most appropriate optimization settings for shipping a browser to end users" to me.
On Thu, May 14, 2020 at 4:02 PM Marshall Greenblatt <magree...@gmail.com> wrote:On May 14, 2020, at 3:52 PM, Sébastien Marchand <sebma...@chromium.org> wrote:On Thu, May 14, 2020 at 3:31 PM Marshall Greenblatt <magree...@gmail.com> wrote:On May 14, 2020, at 3:08 PM, Nico Weber <tha...@chromium.org> wrote:On Thu, May 14, 2020 at 1:38 AM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 6:11 PM Nico Weber <tha...@chromium.org> wrote:On Wed, May 13, 2020 at 8:18 PM Michael Moss <mm...@chromium.org> wrote:On Wed, May 13, 2020 at 5:13 PM Nico Weber <tha...@chromium.org> wrote:…don't do that though. If you don't want official builds, don't set is_official_build. If you do want that, you likely want to match the build config we use to shipI don't think that's accurate. There are reasons to create "is_official" builds that don't necessarily mean you want to create an exact duplicate of an official Chrome build.Could you share an example use case? This is news to me and I'd like to learn more. (I don't doubt it's true.)Don't other non-Chrome Chromium-based projects use is_official_build for their "official" builds? That was my understanding, although it may be out-dated.If it's Chromium-based browsers with not too many downstream patches to core code (blink etc), then the profiles we provide should work pretty well for them.If we wanted to try these profiles with other Chromium-based browsers, what would be the recommended way to measure “work[s] pretty well”? Is there a documented way to generate new profiles based on our own Chromium-based binaries, and integrate those profiles via Chromium tooling for build and comparison purposes?You could evaluate the impact of these profiles by looking at some of your core success metrics (whether it's a synthetic benchmark score or some user metrics) and compare this to a non-PGO build (add chrome_pgo_phase=0 to your GN args).I'll work on documenting the profiling step once we have made more progress on the project (it's still not sure if it'll stick). The summary is that you need to:
- Do a local build with the |chrome_pgo_phase=1| flag. This will produce the instrumented build (I recommend disabling the symbols for this build as it makes the linker use a LOT of memory).
- Run some profiling scenarios with this build.
- Merge the raw profiling data (the *.profraw files generated when running the build) with the llvm-profdata utility (you need to add |"checkout_clang_coverage_tools": True| to your .gclient custom_vars section for gclient to fetch this tool).
- Build with this profile, you can specify the profile to use via the |pgo_data_path| GN variable.
I think a better first step is to use is_official_build=True, follow the prompts to download the profiles collected by our bots, and see how that does on your benchmarks. (In a 2nd build dir, build with chrome_pgo_phase=0 set as well to get a non-PGO build for comparison.)