From 43be4bb1c5ef4478757f20735fba0bb97cf8d763 Mon Sep 17 00:00:00 2001 From: Kaido Kert Date: Sat, 29 Jun 2024 15:50:10 -0700 Subject: [PATCH] Doublecheck Java app start performance --- .../main/java/dev/cobalt/coat/StarboardBridge.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java b/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java index a6114598794f8..5b266a959821e 100644 --- a/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java +++ b/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java @@ -744,6 +744,15 @@ void closeCobaltService(String serviceName) { cobaltServices.remove(serviceName); } + private void maybeReportTime(String label) { + Activity activity = activityHolder.get(); + if (activity instanceof CobaltActivity) { + long javaStartTimestamp = ((CobaltActivity) activity).getAppStartTimestamp(); + long elapsed_ms = (System.nanoTime() - javaStartTimestamp) / (1000 * 1000); + Log.i(TAG, "StarboardBridge::" + label + ": elapsed time: " + elapsed_ms + " ms"); + } + } + /** Returns the application start timestamp. */ @SuppressWarnings("unused") @UsedByNative @@ -753,6 +762,9 @@ protected long getAppStartTimestamp() { long javaStartTimestamp = ((CobaltActivity) activity).getAppStartTimestamp(); long cppTimestamp = nativeCurrentMonotonicTime(); long javaStopTimestamp = System.nanoTime(); + long elapsed_micros = + (javaStopTimestamp - javaStartTimestamp) / timeNanosecondsPerMicrosecond; + Log.i(TAG, "StarboardBridge::getAppStartTimestamp: time: " + (elapsed_micros / 1000) + " ms"); return cppTimestamp - (javaStartTimestamp - javaStopTimestamp) / timeNanosecondsPerMicrosecond; } @@ -762,6 +774,7 @@ protected long getAppStartTimestamp() { @SuppressWarnings("unused") @UsedByNative void reportFullyDrawn() { + maybeReportTime("reportFullyDrawn"); Activity activity = activityHolder.get(); if (activity != null) { activity.reportFullyDrawn(); @@ -771,6 +784,7 @@ void reportFullyDrawn() { @SuppressWarnings("unused") @UsedByNative public void setCrashContext(String key, String value) { + maybeReportTime("setCrashContext"); Log.i(TAG, "setCrashContext Called: " + key + ", " + value); crashContext.put(key, value); if (this.crashContextUpdateHandler != null) {