changeset 18277:7b07043813b9

Truffle: implemented defer compilation statistics
author Christian Humer <christian.humer@gmail.com>
date Thu, 06 Nov 2014 10:20:08 +0100
parents 1f3ab088d958
children f1a988d9213f
files graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/CompilationStatisticsListener.java
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/CompilationStatisticsListener.java	Thu Nov 06 10:20:06 2014 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/CompilationStatisticsListener.java	Thu Nov 06 10:20:08 2014 +0100
@@ -49,6 +49,10 @@
     private int dequeues;
     private int splits;
 
+    private final IntSummaryStatistics deferCompilations = new IntSummaryStatistics();
+    private final LongSummaryStatistics timeToQueue = new LongSummaryStatistics();
+    private final LongSummaryStatistics timeToCompilation = new LongSummaryStatistics();
+
     private final IntSummaryStatistics nodeCount = new IntSummaryStatistics();
     private final IntSummaryStatistics nodeCountTrivial = new IntSummaryStatistics();
     private final IntSummaryStatistics nodeCountNonTrivial = new IntSummaryStatistics();
@@ -104,6 +108,7 @@
         if (firstCompilation == 0) {
             firstCompilation = System.nanoTime();
         }
+        timeToQueue.accept(System.nanoTime() - target.getCompilationProfile().getTimestamp());
     }
 
     @Override
@@ -129,6 +134,9 @@
         CompilationLocal local = new CompilationLocal();
         local.compilationStarted = System.nanoTime();
         compilationLocal.set(local);
+
+        deferCompilations.accept(target.getCompilationProfile().getDeferedCount());
+        timeToCompilation.accept(local.compilationStarted - target.getCompilationProfile().getTimestamp());
     }
 
     @Override
@@ -215,6 +223,10 @@
         printStatistic("Queue Accuracy", 1.0 - dequeues / (double) queues);
         printStatistic("Compilation Utilization", compilationTime.getSum() / (double) (endTime - firstCompilation));
         printStatistic("Remaining Compilation Queue", runtime.getQueuedCallTargets().size());
+        printStatistic("Times defered until compilation", deferCompilations);
+
+        printStatisticTime("Time to queue", timeToQueue);
+        printStatisticTime("Time to compilation", timeToCompilation);
 
         printStatisticTime("Compilation time", compilationTime);
         printStatisticTime("  Truffle Tier", compilationTimeTruffleTier);