public class com.android.internal.util.StatLogger
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.android.internal.util.StatLogger
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "StatLogger"
private final java.lang.Object mLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int SIZE;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] mCountStats;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final long[] mDurationStats;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final int[] mCallsPerSecond;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final long[] mDurationPerSecond;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final int[] mMaxCallsPerSecond;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final long[] mMaxDurationPerSecond;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final long[] mMaxDurationStats;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private long mNextTickTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final java.lang.String[] mLabels;
descriptor: [Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.android.internal.util.StatLogger.mLock:Ljava/lang/Object;
2: aload 0
invokestatic android.os.SystemClock.elapsedRealtime:()J
ldc 1000
ladd
putfield com.android.internal.util.StatLogger.mNextTickTime:J
3: aload 0
aload 1
arraylength
putfield com.android.internal.util.StatLogger.SIZE:I
4: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 10
putfield com.android.internal.util.StatLogger.mCountStats:[I
5: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 11
putfield com.android.internal.util.StatLogger.mDurationStats:[J
6: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 10
putfield com.android.internal.util.StatLogger.mCallsPerSecond:[I
7: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 10
putfield com.android.internal.util.StatLogger.mMaxCallsPerSecond:[I
8: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 11
putfield com.android.internal.util.StatLogger.mDurationPerSecond:[J
9: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 11
putfield com.android.internal.util.StatLogger.mMaxDurationPerSecond:[J
10: aload 0
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
newarray 11
putfield com.android.internal.util.StatLogger.mMaxDurationStats:[J
11: aload 0
aload 1
putfield com.android.internal.util.StatLogger.mLabels:[Ljava/lang/String;
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/android/internal/util/StatLogger;
0 13 1 eventLabels [Ljava/lang/String;
MethodParameters:
Name Flags
eventLabels
public long getTime();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: invokestatic android.os.SystemClock.elapsedRealtimeNanos:()J
ldc 1000
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/util/StatLogger;
public long logDurationStat(int, long);
descriptor: (IJ)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.internal.util.StatLogger.mLock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
invokevirtual com.android.internal.util.StatLogger.getTime:()J
lload 2
lsub
lstore 5
start local 5 2: iload 1
iflt 6
iload 1
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
if_icmpge 6
3: aload 0
getfield com.android.internal.util.StatLogger.mCountStats:[I
iload 1
dup2
iaload
iconst_1
iadd
iastore
4: aload 0
getfield com.android.internal.util.StatLogger.mDurationStats:[J
iload 1
dup2
laload
lload 5
ladd
lastore
5: goto 9
6: StackMap locals: java.lang.Object long
StackMap stack:
ldc "StatLogger"
new java.lang.StringBuilder
dup
ldc "Invalid event ID: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Slog.wtf:(Ljava/lang/String;Ljava/lang/String;)I
pop
7: lload 5
aload 4
monitorexit
8: lreturn
9: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.util.StatLogger.mMaxDurationStats:[J
iload 1
laload
lload 5
lcmp
ifge 11
10: aload 0
getfield com.android.internal.util.StatLogger.mMaxDurationStats:[J
iload 1
lload 5
lastore
11: StackMap locals:
StackMap stack:
invokestatic android.os.SystemClock.elapsedRealtime:()J
lstore 7
start local 7 12: lload 7
aload 0
getfield com.android.internal.util.StatLogger.mNextTickTime:J
lcmp
ifle 20
13: aload 0
getfield com.android.internal.util.StatLogger.mMaxCallsPerSecond:[I
iload 1
iaload
aload 0
getfield com.android.internal.util.StatLogger.mCallsPerSecond:[I
iload 1
iaload
if_icmpge 15
14: aload 0
getfield com.android.internal.util.StatLogger.mMaxCallsPerSecond:[I
iload 1
aload 0
getfield com.android.internal.util.StatLogger.mCallsPerSecond:[I
iload 1
iaload
iastore
15: StackMap locals: long
StackMap stack:
aload 0
getfield com.android.internal.util.StatLogger.mMaxDurationPerSecond:[J
iload 1
laload
aload 0
getfield com.android.internal.util.StatLogger.mDurationPerSecond:[J
iload 1
laload
lcmp
ifge 17
16: aload 0
getfield com.android.internal.util.StatLogger.mMaxDurationPerSecond:[J
iload 1
aload 0
getfield com.android.internal.util.StatLogger.mDurationPerSecond:[J
iload 1
laload
lastore
17: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.util.StatLogger.mCallsPerSecond:[I
iload 1
iconst_0
iastore
18: aload 0
getfield com.android.internal.util.StatLogger.mDurationPerSecond:[J
iload 1
lconst_0
lastore
19: aload 0
lload 7
ldc 1000
ladd
putfield com.android.internal.util.StatLogger.mNextTickTime:J
20: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.util.StatLogger.mCallsPerSecond:[I
iload 1
dup2
iaload
iconst_1
iadd
iastore
21: aload 0
getfield com.android.internal.util.StatLogger.mDurationPerSecond:[J
iload 1
dup2
laload
lload 5
ladd
lastore
22: lload 5
aload 4
monitorexit
23: lreturn
end local 7 end local 5 24: StackMap locals: com.android.internal.util.StatLogger int long java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
25: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/android/internal/util/StatLogger;
0 26 1 eventId I
0 26 2 start J
2 24 5 duration J
12 24 7 nowRealtime J
Exception table:
from to target type
1 8 24 any
9 23 24 any
24 25 24 any
MethodParameters:
Name Flags
eventId
start
public void dump(java.io.PrintWriter, java.lang.String);
descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new com.android.internal.util.IndentingPrintWriter
dup
aload 1
ldc " "
invokespecial com.android.internal.util.IndentingPrintWriter.<init>:(Ljava/io/Writer;Ljava/lang/String;)V
aload 2
invokevirtual com.android.internal.util.IndentingPrintWriter.setIndent:(Ljava/lang/String;)Lcom/android/internal/util/IndentingPrintWriter;
invokevirtual com.android.internal.util.StatLogger.dump:(Lcom/android/internal/util/IndentingPrintWriter;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/util/StatLogger;
0 2 1 pw Ljava/io/PrintWriter;
0 2 2 prefix Ljava/lang/String;
MethodParameters:
Name Flags
pw
prefix
public void dump(com.android.internal.util.IndentingPrintWriter);
descriptor: (Lcom/android/internal/util/IndentingPrintWriter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.internal.util.StatLogger.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 1
ldc "Stats:"
invokevirtual com.android.internal.util.IndentingPrintWriter.println:(Ljava/lang/String;)V
2: aload 1
invokevirtual com.android.internal.util.IndentingPrintWriter.increaseIndent:()Lcom/android/internal/util/IndentingPrintWriter;
pop
3: iconst_0
istore 3
start local 3 4: goto 17
5: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
getfield com.android.internal.util.StatLogger.mCountStats:[I
iload 3
iaload
istore 4
start local 4 6: aload 0
getfield com.android.internal.util.StatLogger.mDurationStats:[J
iload 3
laload
l2d
ldc 1000.0
ddiv
dstore 5
start local 5 7: aload 1
8: ldc "%s: count=%d, total=%.1fms, avg=%.3fms, max calls/s=%d max dur/s=%.1fms max time=%.1fms"
bipush 7
anewarray java.lang.Object
dup
iconst_0
9: aload 0
getfield com.android.internal.util.StatLogger.mLabels:[Ljava/lang/String;
iload 3
aaload
aastore
dup
iconst_1
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
10: iload 4
ifne 11
dconst_0
goto 12
StackMap locals: com.android.internal.util.StatLogger com.android.internal.util.IndentingPrintWriter java.lang.Object int int double
StackMap stack: com.android.internal.util.IndentingPrintWriter java.lang.String java.lang.Object[] java.lang.Object[] int
11: dload 5
iload 4
i2d
ddiv
StackMap locals: com.android.internal.util.StatLogger com.android.internal.util.IndentingPrintWriter java.lang.Object int int double
StackMap stack: com.android.internal.util.IndentingPrintWriter java.lang.String java.lang.Object[] java.lang.Object[] int double
12: invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_4
13: aload 0
getfield com.android.internal.util.StatLogger.mMaxCallsPerSecond:[I
iload 3
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_5
aload 0
getfield com.android.internal.util.StatLogger.mMaxDurationPerSecond:[J
iload 3
laload
l2d
ldc 1000.0
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
bipush 6
14: aload 0
getfield com.android.internal.util.StatLogger.mMaxDurationStats:[J
iload 3
laload
l2d
ldc 1000.0
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
15: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.android.internal.util.IndentingPrintWriter.println:(Ljava/lang/String;)V
end local 5 end local 4 16: iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
aload 0
getfield com.android.internal.util.StatLogger.SIZE:I
if_icmplt 5
end local 3 18: aload 1
invokevirtual com.android.internal.util.IndentingPrintWriter.decreaseIndent:()Lcom/android/internal/util/IndentingPrintWriter;
pop
19: aload 2
monitorexit
20: goto 23
StackMap locals: com.android.internal.util.StatLogger com.android.internal.util.IndentingPrintWriter java.lang.Object
StackMap stack: java.lang.Throwable
21: aload 2
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/android/internal/util/StatLogger;
0 24 1 pw Lcom/android/internal/util/IndentingPrintWriter;
4 18 3 i I
6 16 4 count I
7 16 5 durationMs D
Exception table:
from to target type
1 20 21 any
21 22 21 any
MethodParameters:
Name Flags
pw
public void dumpProto(android.util.proto.ProtoOutputStream, long);
descriptor: (Landroid/util/proto/ProtoOutputStream;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tStatLoggerProto cannot be resolved to a variable\n\tEvent cannot be resolved to a variable\n\tEvent cannot be resolved to a variable\n\tEvent cannot be resolved to a variable\n\tEvent cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/util/StatLogger;
MethodParameters:
Name Flags
proto
fieldId
}
SourceFile: "StatLogger.java"