aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/CriticalPathComputer.java
Commit message (Collapse)AuthorAge
* Accept Durations in the CriticalPathComponent and Profiler.Gravatar ccalvarin2018-02-22
| | | | | RELNOTES: None. PiperOrigin-RevId: 186658512
* Add ActionKeyContext to Action#getKey.Gravatar tomlu2017-11-29
| | | | | | | This key context can be used by actions to share partial key computations, for instance when computing MD5s for nested sets. RELNOTES: None PiperOrigin-RevId: 177359607
* Replace all usages of Blaze's Preconditions class with guava.Gravatar tomlu2017-11-09
| | | | | | | | Blaze had its own class to avoid GC from varargs array creation for the precondition happy path. Guava now (mostly) implements these, making it unnecessary to maintain our own. This change was almost entirely automated by search-and-replace. A few BUILD files needed fixing up since I removed an export of preconditions from lib:util, which was all done by add_deps. There was one incorrect usage of Preconditions that was caught by error prone (which checks Guava's version of Preconditions) that I had to change manually. PiperOrigin-RevId: 175033526
* More BUILD file refactorings.Gravatar philwo2017-09-06
| | | | | | | | | Split collect, concurrent, vfs, windows into package-level BUILD files. Move clock classes out of "util", into their own Java package. Move CompactHashSet into its own Java package to break a dependency cycle. Give nestedset and inmemoryfs their own package-level BUILD files. PiperOrigin-RevId: 167702127
* Annotate CriticalPathComputer's Subscriber methods with ↵Gravatar nharmata2017-08-24
| | | | | | | @AllowConcurrentEvents so as to allow concurrently published events to be handled concurrently. The lack of this annotation means sequential @Subscriber work is a bottleneck during the execution phase. RELNOTES: None PiperOrigin-RevId: 166235310
* Undo Java 8 updates to fix bootstrapping on MacOS.Gravatar laszlocsomor2017-06-30
| | | | | | | Fixes fallout from https://github.com/bazelbuild/bazel/commit/fda985b069ed4cc1966a6ced5743c396f91ac688. RELNOTES: none PiperOrigin-RevId: 160626838
* Automated conversion to Java 8Gravatar laurentlb2017-06-30
| | | | | | | With a few manual fixes for readability. RELNOTES: None. PiperOrigin-RevId: 160582556
* When tracking the critical path, if not keeping incremental state, don't ↵Gravatar janakr2017-04-06
| | | | | | | | keep references to actions indefinitely. Instead, once an action is finished executing, keep just some metadata about it. This allows actions to be unconditionally dropped when running with --batch, --discard_analysis_cache, and --keep_going, even if profiling is enabled. The additional fields here add between 8 and 12 bytes per component, and we have one component per action. This additional penalty is only incurred when we are already saving memory, so I think it's ok. The full penalty will be realized only towards the end of the build, when every action has started executing at least once. Users can still specify --noexperimental_enable_critical_path_profiling if they want to squeeze even more memory out. PiperOrigin-RevId: 152328870
* Tolerate the rare state where a dependent of a previously cached shared ↵Gravatar Janak Ramakrishnan2016-09-28
| | | | | | | | | action sees a different shared action that is in the midst of being an action cache hit. Concretely, suppose that the user builds A, then requests C and D. C depends on A, D depends on B, which is a shared action with A. If B executes at just the right time, as C is finishing execution, C can think that it must add itself to B's execution path, which is incorrect. -- MOS_MIGRATED_REVID=134475095
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Use a single critical path component in case of shared actions that run ↵Gravatar Miguel Alcon Pinto2015-03-23
| | | | | | | concurrently. We update the timing with the maximum elapsed time. This could prevent us from getting the critical path (because another smaller path could mask the critical path), but in practice we do not expect this to happen. -- MOS_MIGRATED_REVID=89133458
* Compute action start time in critical path using Clock.currentTimeMillis ↵Gravatar Miguel Alcon Pinto2015-02-25
| | | | | | | instead of nanoTime. As nanoTime should only be used to compute time differences. To avoid having to pass two long values representing time (And calling twice to Clock.xxx methods per action executed) we compute the wall time by passing a clock and computing the difference from the start nano time. -- MOS_MIGRATED_REVID=87102963
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957