summaryrefslogtreecommitdiffstats
path: root/unit_trace/progress.py
diff options
context:
space:
mode:
authorMac Mollison <mollison@cs.unc.edu>2010-03-14 00:58:31 -0500
committerMac Mollison <mollison@cs.unc.edu>2010-03-14 00:58:31 -0500
commit53752df921cc50450926a57ee11301693504c5c5 (patch)
tree793ebcfa97e15e7854604a8650229d0935ec4f1e /unit_trace/progress.py
parent6f2bdc8c3eff8305d3b50e81c874a3e015069459 (diff)
Added progress submodule to report progress.
This submodule allows us to measure the speed at which trace files are processed and reports on its progress as it goes along.
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