diff options
author | 2018-05-24 10:38:27 -0700 | |
---|---|---|
committer | 2018-05-24 10:39:46 -0700 | |
commit | df2f4e66ea84cc5f30346261f44836b73c11564e (patch) | |
tree | 949b955b55f8a00064ddf4b117ce4a0efdf2ec87 /src/main/java | |
parent | 0c5c1c67da1d3c2d1c6fa76230ef0d41ce47e0c2 (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.java | 16 |
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); |