commit | 8f94afaaf3f9845c0c89153d3b4ae78b49d42c67 | [log] [tgz] |
---|---|---|
author | Googler <noreply@google.com> | Wed Feb 05 01:37:44 2020 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Feb 05 01:38:58 2020 -0800 |
tree | 16377fadc934caa8866b63935d0a652162f5d110 | |
parent | 5a26a466fdd107864395db47e897dba02d3263e4 [diff] |
performance optimization: copy with 128K blocks instead of 8K blocks Before this change, using --spawn_strategy=sandboxed spends ?450ms for copying a ?80 MiB executable out of the sandbox into a FUSE file system we use to store build artifacts. A closer investigation revealed that cp(1) manages to copy the same file in only 175ms. The difference comes from cp(1) using a buffer size of 131072 bytes (128K), which it takes from the st_blksize fstat(2) field (?Block size for filesystem I/O?) of the output file system. Guava hard-codes the buffer size to 8192 bytes, which results in many more FUSE requests and a slower file transfer. For non-FUSE file systems, this change should not have any adverse effects. PiperOrigin-RevId: 293321468
{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