plot_stats.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env python
  2. import argparse
  3. import numpy as np
  4. import matplotlib
  5. matplotlib.use('Agg')
  6. import matplotlib.pyplot as plt
  7. from matplotlib.ticker import FuncFormatter
  8. def megabytes(x, pos):
  9. return '%1.f' % (x/(1024*1024))
  10. def get_memory_utilization_figure(allocated, requested):
  11. memory_fig = plt.figure()
  12. memory_ax = memory_fig.add_subplot(111)
  13. memory_ax.plot(allocated, label='allocated memory', rasterized=True)
  14. memory_ax.plot(requested, label='requested memory', rasterized=True)
  15. memory_ax.set_ylim(ymin=0)
  16. memory_ax.set_xticks([])
  17. memory_ax.set_xlabel('Application timeline')
  18. memory_ax.yaxis.set_major_formatter(FuncFormatter(megabytes))
  19. memory_ax.get_yaxis().tick_left()
  20. return memory_fig
  21. def get_memory_utilization_index(allocated, requested):
  22. memory_fig = plt.figure()
  23. memory_ax = memory_fig.add_subplot(111)
  24. memory_ax.plot(np.true_divide(requested, allocated), rasterized=True)
  25. memory_ax.set_xticks([])
  26. memory_ax.set_xlabel('Application timeline')
  27. memory_ax.get_yaxis().tick_left()
  28. memory_ax.set_ylabel('Memory utilization index')
  29. return memory_fig
  30. if __name__=='__main__':
  31. parser = argparse.ArgumentParser(
  32. description="parse dmmlib's memory traces")
  33. parser.add_argument("stat_arrays_file", type=argparse.FileType('r'),
  34. help="compressed statistics file")
  35. args = parser.parse_args()
  36. npzfile = np.load(args.stat_arrays_file)
  37. allocated = npzfile['allocated']
  38. requested = npzfile['requested']
  39. memory_fig = get_memory_utilization_figure(allocated, requested)
  40. memory_fig.savefig(
  41. '{}_mem_usage.pdf'
  42. .format(args.stat_arrays_file.name.split('.')[0]),
  43. dpi=150
  44. )
  45. memory_fig = get_memory_utilization_index(allocated, requested)
  46. memory_fig.savefig(
  47. '{}_mem_utilization_index.pdf'
  48. .format(args.stat_arrays_file.name.split('.')[0]),
  49. dpi=150
  50. )
  51. args.stat_arrays_file.close()