From 05f6f08832ea18821c9b55ca0f53167adfdc828b Mon Sep 17 00:00:00 2001 From: Peter Serwylo <peter@serwylo.com> Date: Wed, 29 Mar 2017 15:41:06 +1100 Subject: [PATCH] Add Profiler class for diagnosing performance problems. Unused for now, but like with the `LoggingQuery`, it is helpful to be used for debugging purposes. For example, used this to quickly figure out that it took 7 seconds to fix the PRNG stuff in FDroidApp onCreate(). --- app/src/main/java/org/fdroid/fdroid/Utils.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java index b26768c86..c812e1273 100644 --- a/app/src/main/java/org/fdroid/fdroid/Utils.java +++ b/app/src/main/java/org/fdroid/fdroid/Utils.java @@ -623,4 +623,19 @@ public final class Utils { Resources r = ctx.getResources(); return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics()); } + + @SuppressWarnings("unused") + public static class Profiler { + public final long startTime = System.currentTimeMillis(); + public final String logTag; + + public Profiler(String logTag) { + this.logTag = logTag; + } + + public void log(String message) { + long duration = System.currentTimeMillis() - startTime; + Utils.debugLog(logTag, "[" + duration + "ms] " + message); + } + } }