tmf/lttng: Remove unneeded (non-Javadoc) comments
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core.tests / src / org / eclipse / linuxtools / ctf / core / tests / headless / ReadTrace.java
1 /*******************************************************************************
2 * Copyright (c) 2012, 2013 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Matthew Khouzam - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.ctf.core.tests.headless;
14
15 import java.text.DateFormat;
16 import java.text.SimpleDateFormat;
17 import java.util.Date;
18 import java.util.Map;
19 import java.util.Vector;
20
21 import org.eclipse.linuxtools.ctf.core.event.EventDefinition;
22 import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
23 import org.eclipse.linuxtools.ctf.core.trace.CTFTrace;
24 import org.eclipse.linuxtools.ctf.core.trace.CTFTraceReader;
25 import org.eclipse.linuxtools.ctf.core.trace.Stream;
26
27 @SuppressWarnings("javadoc")
28 public class ReadTrace {
29
30 /**
31 * @param args
32 */
33 public static void main(String[] args) {
34 final String TRACE_PATH = "traces/kernel";
35
36 // Change this to enable text output
37 final boolean USE_TEXT = false;
38
39 final int LOOP_COUNT = 1;
40
41 // Work variables
42 Long nbEvent = 0L;
43 Vector<Double> benchs = new Vector<Double>();
44 CTFTrace trace = null;
45 long start, stop;
46 for (int loops = 0; loops < LOOP_COUNT; loops++) {
47 try {
48 nbEvent = 0L;
49 trace = new CTFTrace(TRACE_PATH);
50 } catch (CTFReaderException e) {
51 // do nothing
52 }
53 @SuppressWarnings("unused")
54 long prev = -1;
55 start = System.nanoTime();
56 if (USE_TEXT) {
57 System.out.println("Event, " + " Time, " + " type, " + " CPU ");
58 }
59 if (trace != null) {
60 CTFTraceReader traceReader = new CTFTraceReader(trace);
61
62 start = System.nanoTime();
63
64 while (traceReader.hasMoreEvents()) {
65 EventDefinition ed = traceReader.getCurrentEventDef();
66 nbEvent++;
67 if (USE_TEXT) {
68 String output = formatDate(ed.getTimestamp()
69 + trace.getOffset());
70 System.out.println(nbEvent + ", "
71 + output + ", " + ed.getDeclaration().getName()
72 + ", " + ed.getCPU() + ed.getFields().toString()) ;
73 }
74 @SuppressWarnings("unused")
75 long endTime = traceReader.getEndTime();
76 @SuppressWarnings("unused")
77 long timestamp = traceReader.getCurrentEventDef().getTimestamp();
78 traceReader.advance();
79 }
80 @SuppressWarnings("unused")
81 Map<Long, Stream> streams = traceReader.getTrace().getStreams();
82 }
83 stop = System.nanoTime();
84
85 System.out.print('.');
86 double time = (stop - start) / (double) nbEvent;
87 benchs.add(time);
88 }
89 System.out.println("");
90 double avg = 0;
91 for (Double val : benchs) {
92 avg += val;
93 }
94 avg /= benchs.size();
95 System.out.println("Time to read " + nbEvent + " events = " + avg
96 + " ns/event");
97 for (Double val : benchs) {
98 System.out.print(val);
99 System.out.print(", ");
100 }
101 }
102
103 /**
104 * @param timestamp
105 * the timestamp in UTC to convert to nanoseconds.
106 * @return formatted string.
107 */
108 private static String formatDate(long timestamp) {
109 Date d = new Date(timestamp / 1000000);
110 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.");
111 String output = df.format(d) + (timestamp % 1000000000);
112 return output;
113 }
114 }
This page took 0.032659 seconds and 5 git commands to generate.