Documentation: Add contents of "Build performance metrics" blog post

This change includes the contents of the blog post on "Build performance metrics" published at
https://blog.bazel.build/2022/11/15/build-performance-metrics.html

The content split up and added to different pages:
* new page: Extracting build performance metrics
  This page includes most of the content of the first two sections of the blog post, some content is moved to the "Json Trace Profile" page (see below).
* new page: Breaking down build performance
  This page includes the content of the third (and final) section of the blog post.
* new page: JSON Trace Profile
  This page includes the content of the "Performance profiling" section currently live at https://bazel.build/rules/performance#performance-profiling with some minor updates (new image, new row names), as well as some content from the second section of the blog post (`jq` usage example).
* update page: Optimizing memory
  This page is moved to the newly introduces configure subsection "Build performance" (previously part of "Configuring your build"). In addition, a reference to the "Memory profiling" section of https://bazel.build/rules/performance#memory-profiling is added.
* update page: Optimizing Performance (for custom rules)
  The contents of the "Performance profiling" is moved to the new page "JSON Trace Profile", and points to the new page. The content is not specific to custom rules, but also valuable for optimizing builds in general, so this change attempts to place the content in a more discoverable place and in context of other useful information.

Caveat: I could not run the code locally to check whether it renders correctly, whether all links work, etc.

Future considerations:
In a follow-up change, I would like to add another new page that shows screenshots of different trace profiles (in `chrome://tracing`) and a paragraph on something noteworthy about the profile / how it can help guide was to potentially improve performance.

Closes #17034.

PiperOrigin-RevId: 504606869
Change-Id: I60af55b924ddaf2f592fe038028f80cf61140a7e
11 files changed
tree: ac29d06ffeba6e4c160d9e320d27b96ea7fadc37
  1. .bazelci/
  2. .github/
  3. examples/
  4. scripts/
  5. site/
  6. src/
  7. third_party/
  8. tools/
  9. .bazelrc
  10. .gitattributes
  11. .gitignore
  12. AUTHORS
  13. BUILD
  14. CHANGELOG.md
  15. CODE_OF_CONDUCT.md
  16. CODEOWNERS
  17. combine_distfiles.py
  18. combine_distfiles_to_tar.sh
  19. compile.sh
  20. CONTRIBUTING.md
  21. CONTRIBUTORS
  22. distdir.bzl
  23. distdir_deps.bzl
  24. LICENSE
  25. maven_install.json
  26. MODULE.bazel
  27. README.md
  28. SECURITY.md
  29. WORKSPACE
  30. WORKSPACE.bzlmod
README.md

Bazel

{Fast, Correct} - Choose two

Build and test software of any size, quickly and reliably.

  • Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.

  • One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.

  • Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.

  • Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.

Getting Started

Documentation

Reporting a Vulnerability

To report a security issue, please email security@bazel.build with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Our vulnerability management team will respond within 3 working days of your email. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.

Contributing to Bazel

See CONTRIBUTING.md

Build status