aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-05-24 10:38:27 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-24 10:39:46 -0700
commitdf2f4e66ea84cc5f30346261f44836b73c11564e (patch)
tree949b955b55f8a00064ddf4b117ce4a0efdf2ec87 /src/main/java
parent0c5c1c67da1d3c2d1c6fa76230ef0d41ce47e0c2 (diff)
Log serialized BuildConfigurationValue$Key and its size, for easier diagnosing of bloat.
PiperOrigin-RevId: 197915327
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java
index d064b52e0a..f3b04994e8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java
@@ -38,6 +38,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import java.util.logging.Logger;
/** A Skyframe value representing a {@link BuildConfiguration}. */
// TODO(bazel-team): mark this immutable when BuildConfiguration is immutable.
@@ -45,7 +46,7 @@ import java.util.concurrent.ConcurrentMap;
@AutoCodec
@ThreadSafe
public class BuildConfigurationValue implements SkyValue {
-
+ private static final Logger logger = Logger.getLogger(BuildConfigurationValue.class.getName());
private final BuildConfiguration configuration;
BuildConfigurationValue(BuildConfiguration configuration) {
@@ -159,11 +160,24 @@ public class BuildConfigurationValue implements SkyValue {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CodedOutputStream bytesOut = CodedOutputStream.newInstance(byteArrayOutputStream);
context.serialize(obj.optionsDiff, bytesOut);
+ bytesOut.flush();
+ byteArrayOutputStream.flush();
+ int optionsDiffSerializedSize = byteArrayOutputStream.toByteArray().length;
context.serialize(obj.fragments, bytesOut);
bytesOut.flush();
byteArrayOutputStream.flush();
bytes = byteArrayOutputStream.toByteArray();
cache.put(obj, bytes);
+ logger.info(
+ "Serialized "
+ + obj.optionsDiff
+ + " and "
+ + obj.fragments
+ + " to "
+ + bytes.length
+ + " bytes (optionsDiff took "
+ + optionsDiffSerializedSize
+ + " bytes)");
}
codedOut.writeInt32NoTag(bytes.length);
codedOut.writeRawBytes(bytes);