commit | 919a68801ec25e42a10bb91b7c897b55c276e594 | [log] [tgz] |
---|---|---|
author | djasper <djasper@google.com> | Wed Sep 09 06:06:01 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Sep 09 06:07:11 2020 -0700 |
tree | d5d067e26fff5db8e49a7285da2f052a6c774717 | |
parent | aa0d97c0bfc4c09ec6f45303aa80052ba28afbd9 [diff] |
Move string interning outside of a synchronized block. The interner itself is thread safe and so it is fine to race here. However, getOrCreateIndex() has quite a lot of lock contention, especially for actions with many inputs. Moving the interning and corresponding compute outside of the synchronized block substantially reduces contention as shown in contention profiles. RELNOTES: None. PiperOrigin-RevId: 330707367
{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