| #! /usr/bin/python |
| |
| """Parses the actual memory usage from TCMalloc. |
| |
| This goes through logs that have the actual allocated memory (not sampled) in |
| the logs. The output is of the form of: |
| |
| time (in seconds from some base time), amount of memory allocated by the |
| application |
| |
| """ |
| |
| import argparse |
| from 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("raw_memory_data.csv", "a") |
| |
| base_time = datetime(2014, 6, 11, 0, 0) |
| prev_line = "" |
| half_entry = (None, None) |
| |
| for line in my_file: |
| if "Output Heap Stats:" in line: |
| total_diff = compute_total_diff(line, base_time) |
| half_entry = (total_diff, None) |
| if "Bytes in use by application" in line: |
| total_diff = half_entry[0] |
| memory_used = int(line.strip().split()[1]) |
| half_entry = (None, None) |
| output_file.write("{0},{1}\n".format(total_diff, memory_used)) |