Don't create CommandCompleteEvent for OOMs ahead of time. Its super-constructor records timestamps and gc stats under the covers, so that data will be inaccurate.

--
MOS_MIGRATED_REVID=123909692
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 8cb0263..3a51bb7 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -141,10 +141,6 @@
 
   private static final Logger LOG = Logger.getLogger(BlazeRuntime.class.getName());
 
-  // Pre-allocate memory for this object in case of an OOM.
-  private static final CommandCompleteEvent OOM_COMMAND_COMPLETE_EVENT =
-      new CommandCompleteEvent(ExitCode.OOM_ERROR.getNumericExitCode());
-
   private final Iterable<BlazeModule> blazeModules;
   private final Map<String, BlazeCommand> commandMap = new LinkedHashMap<>();
   private final Clock clock;
@@ -519,11 +515,7 @@
       // thread won the race (unlikely, but possible), this may be incorrectly logged as a success.
       return;
     }
-    CommandCompleteEvent commandCompleteEvent =
-        exitCode == ExitCode.OOM_ERROR.getNumericExitCode()
-            ? OOM_COMMAND_COMPLETE_EVENT
-            : new CommandCompleteEvent(exitCode);
-    workspace.getSkyframeExecutor().getEventBus().post(commandCompleteEvent);
+    workspace.getSkyframeExecutor().getEventBus().post(new CommandCompleteEvent(exitCode));
   }
 
   /**