From 53752df921cc50450926a57ee11301693504c5c5 Mon Sep 17 00:00:00 2001 From: Mac Mollison Date: Sun, 14 Mar 2010 00:58:31 -0500 Subject: 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. --- unit_trace/progress.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 unit_trace/progress.py (limited to 'unit_trace/progress.py') 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 @@ +############################################################################### +# Description +############################################################################### + +# Display progress information: +# - Total number of bytes in trace files +# - Total number of event records in trace files +# - Message for every 1,000 records processed +# - Total records processed +# - Total elapsed time + +############################################################################### +# Imports +############################################################################### + +import time +import sys +import os + +############################################################################### +# Public functions +############################################################################### + +def progress(stream): + + start_time = 0 + count = 0 + + for record in stream: + if record.record_type=="event": + count += 1 + if (count % 1000) == 0 and count > 0: + sys.stderr.write(("Parsed %d event records\n") % (count)) + if record.record_type=="meta" and record.type_name=="trace_files": + bytes = 0 + for file in record.files: + bytes += int(os.path.getsize(file)) + sys.stderr.write(("Total bytes : %d\n") % (bytes)) + # 192 bits per event record, 8 bits per byte + sys.stderr.write(("Total records: %d\n") % (bytes * 8 / 192)) + start_time = time.time() + yield record + + sys.stderr.write(("Total records processed: %d\n") % (count)) + sys.stderr.write(("Time elapsed: %ds\n") % (time.time() - start_time)) + -- cgit v1.2.2