ctf: Make events immutable
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core.tests / src / org / eclipse / linuxtools / ctf / core / tests / headless / ReadTrace.java
index bc584790ac6374b51b89b2ec2a7f189a07648d61..2541d9da60231ea6d02ec2d132201e60f87648b8 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012 Ericsson
+ * Copyright (c) 2012, 2014 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -12,6 +12,7 @@
 
 package org.eclipse.linuxtools.ctf.core.tests.headless;
 
+import java.io.FileNotFoundException;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -22,54 +23,62 @@ import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
 import org.eclipse.linuxtools.ctf.core.trace.CTFTrace;
 import org.eclipse.linuxtools.ctf.core.trace.CTFTraceReader;
 
+@SuppressWarnings("javadoc")
 public class ReadTrace {
 
     /**
      * @param args
+     * @throws FileNotFoundException
      */
-    @SuppressWarnings("nls")
-    public static void main(String[] args) {
-        final String TRACE_PATH = "Tests/traces/trace20m1";
+    public static void main(String[] args) throws FileNotFoundException {
+        final String TRACE_PATH = "traces/kernel";
 
         // Change this to enable text output
         final boolean USE_TEXT = false;
 
+        final int LOOP_COUNT = 10;
+
         // Work variables
-        Long nbEvent = 0L;
-        Vector<Double> benchs = new Vector<Double>();
+        long nbEvent = 0L;
+        Vector<Double> benchs = new Vector<>();
         CTFTrace trace = null;
         long start, stop;
-        for (int loops = 0; loops < 100; loops++) {
+        for (int loops = 0; loops < LOOP_COUNT; loops++) {
             try {
                 nbEvent = 0L;
                 trace = new CTFTrace(TRACE_PATH);
             } catch (CTFReaderException e) {
-                nbEvent = (long) -1;
+                throw new FileNotFoundException(TRACE_PATH);
             }
-
             start = System.nanoTime();
-            if (nbEvent != -1) {
-                CTFTraceReader traceReader = new CTFTraceReader(trace);
-
+            if (USE_TEXT) {
+                System.out.println("Event, " + " Time, " + " type, " + " CPU ");
+            }
+            try (CTFTraceReader traceReader = new CTFTraceReader(trace);) {
                 start = System.nanoTime();
+
                 while (traceReader.hasMoreEvents()) {
                     EventDefinition ed = traceReader.getCurrentEventDef();
                     nbEvent++;
                     if (USE_TEXT) {
-                        String output = formatDate(ed.timestamp
+                        String output = formatDate(ed.getTimestamp()
                                 + trace.getOffset());
-                        System.out.println("Event " + nbEvent + " Time "
-                                + output + " type "
-                                + ed.getDeclaration().getName() + " on CPU "
-                                + ed.getCPU());
+                        System.out.println(nbEvent + ", "
+                                + output + ", " + ed.getDeclaration().getName()
+                                + ", " + ed.getCPU() + ed.getFields().toString());
                     }
+
                     traceReader.advance();
                 }
+
+                stop = System.nanoTime();
+
+                System.out.print('.');
+                double time = (stop - start) / (double) nbEvent;
+                benchs.add(time);
+            } catch (CTFReaderException e) {
+                System.out.println("error");
             }
-            stop = System.nanoTime();
-            System.out.print('.');
-            double time = (stop - start) / (double) nbEvent;
-            benchs.add(time);
         }
         System.out.println("");
         double avg = 0;
@@ -77,11 +86,12 @@ public class ReadTrace {
             avg += val;
         }
         avg /= benchs.size();
-        System.out.println("Time to read = " + avg + " events/ns");
-        for(Double val:benchs){
-            System.out.print(val );System.out.print( ", ");
+        System.out.println("Time to read " + nbEvent + " events = " + avg
+                + " ns/event");
+        for (Double val : benchs) {
+            System.out.print(val);
+            System.out.print(", ");
         }
-
     }
 
     /**
@@ -91,7 +101,7 @@ public class ReadTrace {
      */
     private static String formatDate(long timestamp) {
         Date d = new Date(timestamp / 1000000);
-        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss."); //$NON-NLS-1$
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.");
         String output = df.format(d) + (timestamp % 1000000000);
         return output;
     }
This page took 0.025061 seconds and 5 git commands to generate.