diff options
Diffstat (limited to 'deprecated/mem_tests/mem_groups.py')
-rwxr-xr-x | deprecated/mem_tests/mem_groups.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/deprecated/mem_tests/mem_groups.py b/deprecated/mem_tests/mem_groups.py new file mode 100755 index 00000000..5d593872 --- /dev/null +++ b/deprecated/mem_tests/mem_groups.py @@ -0,0 +1,55 @@ +#!/usr/bin/python2 +"""Groups memory by allocation sizes. + +Takes a log entry and sorts sorts everything into groups based on what size +chunks the memory has been allocated in. groups is an array that contains the +divisions (in bytes). + +The output format is: + +timestamp, percent of memory in chunks < groups[0], percent between groups[0] +and groups[1], etc. + +""" + +import argparse +from cros_utils import compute_total_diff +from datetime import datetime + +pretty_print = True + +parser = argparse.ArgumentParser() +parser.add_argument('filename') +args = parser.parse_args() + +my_file = open(args.filename) +output_file = open('groups.csv', 'a') + +# The cutoffs for each group in the output (in bytes) +groups = [1024, 8192, 65536, 524288, 4194304] + +base_time = datetime(2014, 6, 11, 0, 0) +prev_line = '' +half_entry = (None, None) + +for line in my_file: + if 'heap profile:' in line: + if half_entry[0] is not None: + group_totals = half_entry[1] + total = sum(group_totals) * 1.0 + to_join = [half_entry[0]] + [value / total for value in group_totals] + to_output = ','.join([str(elem) for elem in to_join]) + output_file.write(to_output) + total_diff = compute_total_diff(line, base_time) + half_entry = (total_diff, [0] * (len(groups) + 1)) + if '] @ ' in line and 'heap profile:' not in line: + mem_samples = line.strip().split('[')[0] + num_samples, total_mem = map(int, mem_samples.strip().split(':')) + mem_per_sample = total_mem // num_samples + group_totals = half_entry[1] + for cutoff_index in range(len(groups)): + if mem_per_sample <= groups[cutoff_index]: + group_totals[cutoff_index] += total_mem + break + if mem_per_sample > groups[-1]: + group_totals[-1] += total_mem |