From 88a0f970e47dc0091d2c9965aa9bd06667e5f4b7 Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Wed, 24 Feb 2010 15:00:40 -0800 Subject: Enhance the jit profiler to print more statistics and be more verbose. Specifically, the per-trace invocation percentage is printed now. D/dalvikvm( 671): TRACEPROFILE 0x42b6eed8 15449863 2.13% [0(+2), 253] Ljava/nio/Buffer;position;()I D/dalvikvm( 671): TRACEPROFILE 0x42b7b3ac 15410023 2.13% [0x4(+3), 450] Lorg/apache/xml/serializer/CharInfo;shouldMapTextChar;(I)Z D/dalvikvm( 671): TRACEPROFILE 0x42b7b2cc 15346582 2.12% [0(+2), 449] Lorg/apache/xml/serializer/CharInfo;shouldMapTextChar;(I)Z D/dalvikvm( 671): TRACEPROFILE 0x42b7b40c 15013650 2.07% [0xb4(+2), 1527] Lorg/apache/xml/serializer/ToStream;characters;([CII)V D/dalvikvm( 671): TRACEPROFILE 0x42b7b4f0 14907957 2.06% [0xc7(+2), 1537] Lorg/apache/xml/serializer/ToStream;characters;([CII)V D/dalvikvm( 671): TRACEPROFILE 0x42b7b308 14898588 2.06% [0xad(+3), 1525] Lorg/apache/xml/serializer/ToStream;characters;([CII)V D/dalvikvm( 671): TRACEPROFILE 0x42b7b52c 14798762 2.04% [0xc4(+2), 1523] Lorg/apache/xml/serializer/ToStream;characters;([CII)V D/dalvikvm( 671): TRACEPROFILE 0x42b7b570 14763770 2.04% [0xf3(+2), 1577] Lorg/apache/xml/serializer/ToStream;characters;([CII)V And the top 10 traces will be recompiled in verbose mode to facilitate code quality analysis. --- vm/compiler/Compiler.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'vm/compiler/Compiler.c') diff --git a/vm/compiler/Compiler.c b/vm/compiler/Compiler.c index 829713144..a353b867c 100644 --- a/vm/compiler/Compiler.c +++ b/vm/compiler/Compiler.c @@ -532,6 +532,12 @@ void dvmCompilerShutdown(void) { void *threadReturn; + if (gDvm.verboseShutdown) { + dvmCompilerDumpStats(); + while (gDvmJit.compilerQueueLength) + sleep(5); + } + if (gDvmJit.compilerHandle) { gDvmJit.haltCompilerThread = true; @@ -546,9 +552,6 @@ void dvmCompilerShutdown(void) LOGD("Compiler thread has shut down\n"); } - if (gDvm.verboseShutdown) - dvmCompilerDumpStats(); - dvmDestroyMutex(&gDvmJit.tableLock); dvmDestroyMutex(&gDvmJit.compilerLock); dvmDestroyMutex(&gDvmJit.compilerICPatchLock); -- cgit v1.2.3