commit | 42c2c729597eb7e8a87c62dce435781f47732d2c | [log] [tgz] |
---|---|---|
author | tomlu <tomlu@google.com> | Wed Jan 31 11:18:20 2018 -0800 |
committer | Copybara-Service <copybara-piper@google.com> | Wed Jan 31 11:20:14 2018 -0800 |
tree | c524951169166f05b61e470a47eafab73dfc0240 | |
parent | 223ed93582dbb730eb92c80cc6350dcec116ec0a [diff] |
Add memory-efficient map for storing nested set -> digest. Instead of using ConcurrentHashMap, we use a dead-simple open addressed hash hable with a giant byte array with 16-byte slots. We then read or write fingerprints straight into and out of the array, obviating the need to generate intermediate garbage. Locking mechanism is a read-write lock. This should be faster than full synchronisation for read-heavy loads. RELNOTES: None PiperOrigin-RevId: 184019301
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds 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
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.