mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-25 01:07:47 +00:00
Added a new Stopwatch class to easily log timings.
This commit is contained in:
parent
2209e68ae0
commit
bcebf58b76
58
src/org/thoughtcrime/securesms/util/Stopwatch.java
Normal file
58
src/org/thoughtcrime/securesms/util/Stopwatch.java
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
package org.thoughtcrime.securesms.util;
|
||||||
|
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Stopwatch {
|
||||||
|
|
||||||
|
private final long startTime;
|
||||||
|
private final String title;
|
||||||
|
private final List<Split> splits;
|
||||||
|
|
||||||
|
public Stopwatch(@NonNull String title) {
|
||||||
|
this.startTime = System.currentTimeMillis();
|
||||||
|
this.title = title;
|
||||||
|
this.splits = new LinkedList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void split(@NonNull String label) {
|
||||||
|
splits.add(new Split(System.currentTimeMillis(), label));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stop(@NonNull String tag) {
|
||||||
|
StringBuilder out = new StringBuilder();
|
||||||
|
out.append("[").append(title).append("] ");
|
||||||
|
|
||||||
|
if (splits.size() > 0) {
|
||||||
|
out.append(splits.get(0).label).append(": ");
|
||||||
|
out.append(splits.get(0).time - startTime);
|
||||||
|
out.append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (splits.size() > 1) {
|
||||||
|
for (int i = 1; i < splits.size(); i++) {
|
||||||
|
out.append(splits.get(i).label).append(": ");
|
||||||
|
out.append(splits.get(i).time - splits.get(i - 1).time);
|
||||||
|
out.append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
out.append("total: ").append(splits.get(splits.size() - 1).time - startTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.d(tag, out.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Split {
|
||||||
|
final long time;
|
||||||
|
final String label;
|
||||||
|
|
||||||
|
Split(long time, String label) {
|
||||||
|
this.time = time;
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user