commit | ed4458e961d4f883cc5a0ef38639f0d66f73c09f | [log] [tgz] |
---|---|---|
author | leba <leba@google.com> | Tue Nov 17 12:12:20 2020 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Nov 17 12:13:30 2020 -0800 |
tree | 159526aa0c70319667c39051537dff6fefca13e6 | |
parent | 659a89df317f7beede176ead1fc26f334eb61385 [diff] |
Use List instead of Map in Skyframe's intermediate eval results. This CL is a no-op and only provides the necessary methods for Skyframe evaluation with Lists instead of Maps. Actual application will be done in subsequent CLs. Constructing a Map<SkyKey, SkyValue> to store intermediate Skyframe evaluation result is wasteful since we don't make use of the look up capabilities of Maps, but rather just iterate over the key-value pairs. As an alternative, we can present the Skyframe evaluation result with a more space-efficient List<SkyValue>, then rely on the given order of the requested SkyKeys to iterate over it in various SkyFunctions. Our benchmarks/profiles showed some reduction in GC and CPU time as a result of this switch. RELNOTES: None PiperOrigin-RevId: 342917514
{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.
Follow our tutorials:
See CONTRIBUTING.md