aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/profiler
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2017-06-30 00:32:04 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-06-30 13:00:58 +0200
commit3d2a68c6da2a50a9e1bcf6615e83a43701cdf95d (patch)
tree31692a985d316e33733ab6993e529b8a08c206b6 /src/main/java/com/google/devtools/build/lib/profiler
parent2d5eeab381713f99c8c8b7b80f3d447be847b548 (diff)
Automated conversion to Java 8
With a few manual fixes for readability. RELNOTES: None. PiperOrigin-RevId: 160582556
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/profiler')
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/MetricData.java36
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java27
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/chart/Chart.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/statistics/CriticalPathStatistics.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseStatistics.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseVfsStatistics.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java11
7 files changed, 30 insertions, 80 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/MetricData.java b/src/main/java/com/google/devtools/build/lib/profiler/MetricData.java
index db46b0d866..419318c054 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/MetricData.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/MetricData.java
@@ -13,12 +13,10 @@
// limitations under the License.
package com.google.devtools.build.lib.profiler;
-import com.google.common.base.Joiner;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
+import static java.util.stream.Collectors.joining;
+
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Range;
-
import java.text.DecimalFormat;
/**
@@ -33,14 +31,6 @@ public final class MetricData {
private final double avg;
private final double stdDev;
private final int max;
- private static final Predicate<HistogramElement> NON_EMPTY_HISTOGRAM_ELEMENT =
- new Predicate<HistogramElement>() {
- @Override
- public boolean apply(HistogramElement element) {
- return element.count > 0;
- }
- };
-
public MetricData(Object description, ImmutableList<HistogramElement> histogram, int count,
double avg, double stdDev, int max) {
this.description = description;
@@ -81,13 +71,23 @@ public final class MetricData {
return "'" + description + "'. Zero data recorded";
}
DecimalFormat fmt = new DecimalFormat("0.###");
- return "'" + description + "'. "
- + " Count: " + count
- + " Avg: " + fmt.format(avg)
- + " StdDev: " + fmt.format(stdDev)
- + " Max: " + max
+ return "'"
+ + description
+ + "'. "
+ + " Count: "
+ + count
+ + " Avg: "
+ + fmt.format(avg)
+ + " StdDev: "
+ + fmt.format(stdDev)
+ + " Max: "
+ + max
+ " Histogram:\n "
- + Joiner.on("\n ").join(Collections2.filter(histogram, NON_EMPTY_HISTOGRAM_ELEMENT));
+ + histogram
+ .stream()
+ .filter(element -> element.count > 0)
+ .map(Object::toString)
+ .collect(joining("\n "));
}
/** An histogram element that contains the range that applies to and the number of elements. */
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java b/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java
index 4c1309a040..242bdb2c7f 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java
@@ -13,11 +13,11 @@
// limitations under the License.
package com.google.devtools.build.lib.profiler;
+import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.devtools.build.lib.profiler.ProfilerTask.CRITICAL_PATH;
import static com.google.devtools.build.lib.profiler.ProfilerTask.TASK_COUNT;
import com.google.common.base.Joiner;
-import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.ListMultimap;
@@ -29,7 +29,6 @@ import com.google.common.collect.Sets;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.VarInt;
import com.google.devtools.build.lib.vfs.Path;
-
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.IOException;
@@ -49,6 +48,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
+import java.util.stream.Stream;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;
@@ -320,17 +320,10 @@ public class ProfileInfo {
out.print(" [");
ImmutableList<Task> sortedSubTasks =
- TASK_DURATION_ORDERING
- .reverse()
- .immutableSortedCopy(
- Iterables.filter(
- Arrays.asList(subtasks),
- new Predicate<Task>() {
- @Override
- public boolean apply(Task task) {
- return task.durationNanos >= durationThresholdNanos;
- }
- }));
+ Stream.of(subtasks)
+ .filter(task -> task.durationNanos >= durationThresholdNanos)
+ .sorted(TASK_DURATION_ORDERING.reverse())
+ .collect(toImmutableList());
String sep = "";
for (Task task : sortedSubTasks) {
out.print(sep);
@@ -953,13 +946,7 @@ public class ProfileInfo {
*/
public Iterable<Task> findTasksByDescription(final Pattern description) {
return Iterables.filter(
- allTasksById,
- new Predicate<Task>() {
- @Override
- public boolean apply(Task task) {
- return description.matcher(task.getDescription()).find();
- }
- });
+ allTasksById, task -> description.matcher(task.getDescription()).find());
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/chart/Chart.java b/src/main/java/com/google/devtools/build/lib/profiler/chart/Chart.java
index 79ec2fcba8..9fddfd92c3 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/chart/Chart.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/chart/Chart.java
@@ -143,11 +143,7 @@ public class Chart {
* otherwise
*/
private ChartRow addSlotIfAbsent(long id) {
- ChartRow slot = rows.get(id);
- if (slot == null) {
- slot = new ChartRow(Long.toString(id), rowIndex++);
- rows.put(id, slot);
- }
+ ChartRow slot = rows.computeIfAbsent(id, k -> new ChartRow(Long.toString(k), rowIndex++));
return slot;
}
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/statistics/CriticalPathStatistics.java b/src/main/java/com/google/devtools/build/lib/profiler/statistics/CriticalPathStatistics.java
index 8631016543..ec18dc5092 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/statistics/CriticalPathStatistics.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/statistics/CriticalPathStatistics.java
@@ -13,21 +13,18 @@
// limitations under the License.
package com.google.devtools.build.lib.profiler.statistics;
-import com.google.common.base.Predicate;
import com.google.devtools.build.lib.actions.MiddlemanAction;
import com.google.devtools.build.lib.profiler.ProfileInfo;
import com.google.devtools.build.lib.profiler.ProfileInfo.CriticalPathEntry;
import com.google.devtools.build.lib.profiler.ProfileInfo.Task;
import com.google.devtools.build.lib.profiler.ProfilerTask;
import com.google.devtools.build.lib.util.Pair;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
-
import javax.annotation.Nullable;
/**
@@ -50,12 +47,7 @@ public final class CriticalPathStatistics implements Iterable<Pair<String, Doubl
Pair.of(
"the VFS calls",
ProfilerTask.allSatisfying(
- new Predicate<ProfilerTask>() {
- @Override
- public boolean apply(ProfilerTask task) {
- return DEFAULT_FILTER.contains(task) || task.name().startsWith("VFS_");
- }
- })),
+ task -> DEFAULT_FILTER.contains(task) || task.name().startsWith("VFS_"))),
typeFilter("the dependency checking", ProfilerTask.ACTION_CHECK),
typeFilter("the execution setup", ProfilerTask.ACTION_EXECUTE),
typeFilter("local execution", ProfilerTask.SPAWN, ProfilerTask.LOCAL_EXECUTION),
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseStatistics.java b/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseStatistics.java
index b8e303b3f1..290eb72fa0 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseStatistics.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseStatistics.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.profiler.statistics;
-import com.google.common.base.Predicate;
import com.google.common.collect.Iterators;
import com.google.devtools.build.lib.profiler.ProfileInfo;
import com.google.devtools.build.lib.profiler.ProfileInfo.AggregateAttr;
@@ -21,11 +20,9 @@ import com.google.devtools.build.lib.profiler.ProfileInfo.Task;
import com.google.devtools.build.lib.profiler.ProfilePhase;
import com.google.devtools.build.lib.profiler.ProfilerTask;
import com.google.devtools.build.lib.util.Preconditions;
-
import java.util.EnumMap;
import java.util.Iterator;
import java.util.List;
-
import javax.annotation.Nullable;
/**
@@ -207,12 +204,7 @@ public final class PhaseStatistics implements Iterable<ProfilerTask> {
public Iterator<ProfilerTask> iterator() {
return Iterators.filter(
taskCounts.keySet().iterator(),
- new Predicate<ProfilerTask>() {
- @Override
- public boolean apply(ProfilerTask taskType) {
- return getTotalDurationNanos(taskType) > 0 && wasExecuted(taskType);
- }
- });
+ taskType -> getTotalDurationNanos(taskType) > 0 && wasExecuted(taskType));
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseVfsStatistics.java b/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseVfsStatistics.java
index 58d454f368..cdc794c033 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseVfsStatistics.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/statistics/PhaseVfsStatistics.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.profiler.statistics;
-import com.google.common.base.Supplier;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Table;
@@ -23,7 +22,6 @@ import com.google.devtools.build.lib.profiler.ProfileInfo;
import com.google.devtools.build.lib.profiler.ProfileInfo.Task;
import com.google.devtools.build.lib.profiler.ProfilePhase;
import com.google.devtools.build.lib.profiler.ProfilerTask;
-
import java.util.Arrays;
import java.util.EnumMap;
import java.util.HashMap;
@@ -108,13 +106,7 @@ public final class PhaseVfsStatistics implements Iterable<ProfilerTask> {
this.phase = phase;
this.statistics =
Tables.newCustomTable(
- new EnumMap<ProfilerTask, Map<String, Stat>>(ProfilerTask.class),
- new Supplier<Map<String, Stat>>() {
- @Override
- public Map<String, Stat> get() {
- return new HashMap<>();
- }
- });
+ new EnumMap<ProfilerTask, Map<String, Stat>>(ProfilerTask.class), HashMap::new);
}
public PhaseVfsStatistics(final String workSpaceName, ProfilePhase phase, ProfileInfo info) {
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java b/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java
index 50a4e32a5b..325446668c 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java
@@ -14,12 +14,10 @@
package com.google.devtools.build.lib.profiler.statistics;
import com.google.common.collect.Maps;
-import com.google.common.collect.Maps.EntryTransformer;
import com.google.common.collect.Multimap;
import com.google.devtools.build.lib.profiler.ProfileInfo;
import com.google.devtools.build.lib.profiler.ProfileInfo.Task;
import com.google.devtools.build.lib.util.LongArrayList;
-
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -251,13 +249,6 @@ public final class SkylarkStatistics {
*/
private static Map<String, TasksStatistics> buildTasksStatistics(
final Map<String, LongArrayList> durationsMap) {
- return Maps.transformEntries(
- durationsMap,
- new EntryTransformer<String, LongArrayList, TasksStatistics>() {
- @Override
- public TasksStatistics transformEntry(String function, LongArrayList durations) {
- return TasksStatistics.create(function, durations);
- }
- });
+ return Maps.transformEntries(durationsMap, TasksStatistics::create);
}
}