summaryrefslogtreecommitdiffstats
path: root/unit_trace/progress.py
diff options
context:
space:
mode:
Diffstat (limited to 'unit_trace/progress.py')
-rw-r--r--unit_trace/progress.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/unit_trace/progress.py b/unit_trace/progress.py
new file mode 100644
index 0000000..d987ecd
--- /dev/null
+++ b/unit_trace/progress.py
@@ -0,0 +1,46 @@
1###############################################################################
2# Description
3###############################################################################
4
5# Display progress information:
6# - Total number of bytes in trace files
7# - Total number of event records in trace files
8# - Message for every 1,000 records processed
9# - Total records processed
10# - Total elapsed time
11
12###############################################################################
13# Imports
14###############################################################################
15
16import time
17import sys
18import os
19
20###############################################################################
21# Public functions
22###############################################################################
23
24def progress(stream):
25
26 start_time = 0
27 count = 0
28
29 for record in stream:
30 if record.record_type=="event":
31 count += 1
32 if (count % 1000) == 0 and count > 0:
33 sys.stderr.write(("Parsed %d event records\n") % (count))
34 if record.record_type=="meta" and record.type_name=="trace_files":
35 bytes = 0
36 for file in record.files:
37 bytes += int(os.path.getsize(file))
38 sys.stderr.write(("Total bytes : %d\n") % (bytes))
39 # 192 bits per event record, 8 bits per byte
40 sys.stderr.write(("Total records: %d\n") % (bytes * 8 / 192))
41 start_time = time.time()
42 yield record
43
44 sys.stderr.write(("Total records processed: %d\n") % (count))
45 sys.stderr.write(("Time elapsed: %ds\n") % (time.time() - start_time))
46