Rename xxx.lttng to xxx.lttng.core
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.tests / src / org / eclipse / linuxxtools / lttng / tests / headless / LttngTraceTest.java
1 package org.eclipse.linuxxtools.lttng.tests.headless;
2 /*******************************************************************************
3 * Copyright (c) 2009 Ericsson
4 *
5 * All rights reserved. This program and the accompanying materials are
6 * made available under the terms of the Eclipse Public License v1.0 which
7 * accompanies this distribution, and is available at
8 * http://www.eclipse.org/legal/epl-v10.html
9 *
10 * Contributors:
11 * William Bourque (wbourque@gmail.com) - Initial API and implementation
12 *******************************************************************************/
13
14 import org.eclipse.linuxtools.lttng.event.LttngEvent;
15 import org.eclipse.linuxtools.lttng.event.LttngLocation;
16 import org.eclipse.linuxtools.lttng.event.LttngTimestamp;
17 import org.eclipse.linuxtools.lttng.trace.LTTngTextTrace;
18 import org.eclipse.linuxtools.lttng.trace.LTTngTrace;
19 import org.eclipse.linuxtools.tmf.trace.TmfContext;
20 import org.eclipse.linuxtools.tmf.trace.TmfTrace;
21
22
23 @SuppressWarnings("nls")
24 public class LttngTraceTest {
25
26 /**
27 * @param args
28 */
29 public static void main(String[] args) {
30
31 // Path of the trace
32 final String TRACE_PATH = "/home/francois/Desktop/Workspaces/LTTngTraces/trace_2GB";
33
34 // *** Change to true to use the "fake" LttngTextTrace instead of LTTngTrace
35 // To use this, you need a ".txt" trace.
36 // You can get it using LTTv with the command "lttv -m textDump -t /tmp/sometrace > mytrace.txt"
37 final boolean USE_TEXT_TRACE = false;
38
39 // *** Change this to run several time over the same trace
40 final int NB_OF_PASS = 1;
41
42 // *** Change this to true to parse all the events in the trace
43 // Otherwise, events are just read
44 final boolean PARSE_EVENTS = true;
45
46
47 // Work variables
48 TmfTrace<LttngEvent> tmptrace = null;
49 LttngEvent tmpevent = null;
50 TmfContext tmpContext = null;
51 Long nbEvent = 0L;
52
53 try {
54 // ** Use TextTrace (slow!) if it was asked
55 if ( USE_TEXT_TRACE ) {
56 tmptrace = new LTTngTextTrace(TRACE_PATH, true);
57 } else {
58 tmptrace = new LTTngTrace(TRACE_PATH, null, true, true);
59 }
60
61 LttngTimestamp tmpTime = new LttngTimestamp(0L);
62 tmpContext = new TmfContext(new LttngLocation(0L), 0);
63
64
65 long startTime = System.nanoTime();
66 System.out.println("Start: " + startTime);
67 for ( int nb=0; nb<NB_OF_PASS; nb++) {
68
69 // Seek to the beginning of the trace
70 tmpContext = tmptrace.seekEvent( tmpTime );
71 tmpevent = (LttngEvent)tmptrace.getNextEvent(tmpContext);
72
73 while ( tmpevent != null ) {
74 tmpevent = (LttngEvent)tmptrace.getNextEvent(tmpContext);
75
76 // Parse the events if it was asked
77 if ( (tmpevent != null) && (PARSE_EVENTS) ) {
78 tmpevent.getContent().getFields();
79
80 // *** Uncomment the following to print the parsed content
81 // Warning : this is VERY intensive
82 //
83 // System.out.println(tmpevent.toString());
84 //System.out.println(testEvent.getContent().toString());
85 }
86
87 nbEvent++;
88 }
89 }
90
91 System.out.println("NB events : " + nbEvent);
92
93 long endTime = System.nanoTime();
94 long elapsed = endTime - startTime;
95 System.out.println("End: " + endTime);
96 System.out.println("Elapsed: " + elapsed + ", Average: " + (elapsed/nbEvent) + "ns/evt");
97
98 }
99 catch (Exception e) {
100 e.printStackTrace();
101 }
102
103 }
104
105 }
This page took 0.043182 seconds and 5 git commands to generate.