Add memory usage tracking to test scripts.
Bug:
Change-Id: Ifb0742fb47f4031c973ad39ec09627270bc357ea
diff --git a/tools/test_framework.py b/tools/test_framework.py
index 810935d..57279bf 100755
--- a/tools/test_framework.py
+++ b/tools/test_framework.py
@@ -53,6 +53,12 @@
required = True,
help = 'Results will be printed using the specified benchmark name (e.g.'
' <NAME>-<segment>(CodeSize): <bytes>)')
+ parser.add_argument('--print-memoryuse',
+ help = 'Prints the line \'<NAME>(MemoryUse):' +
+ ' <mem>\' at the end where <mem> is the peak' +
+ ' peak resident set size (VmHWM) in bytes.',
+ default = False,
+ action = 'store_true')
return parser.parse_args()
# Return a dictionary: {segment_name -> segments_size}
@@ -96,10 +102,16 @@
if args.tool == 'd8-release':
tool_args.append('--release')
+
+ cmd = []
+
+ track_memory_file = None
+ if args.print_memoryuse:
+ track_memory_file = os.path.join(temp_dir, utils.MEMORY_USE_TMP_FILE)
+ cmd.extend(['tools/track_memory.sh', track_memory_file])
+
if tool_file.endswith('.jar'):
- cmd = ['java', '-jar']
- else:
- cmd = []
+ cmd.extend(['java', '-jar'])
cmd.extend([tool_file] + tool_args + [FRAMEWORK_JAR])
@@ -109,6 +121,10 @@
subprocess.check_call(cmd)
dt = time.time() - t0
+ if args.print_memoryuse:
+ print('{}(MemoryUse): {}'
+ .format(args.name, utils.grep_memoryuse(track_memory_file)))
+
dex_files = [f for f in glob(os.path.join(temp_dir, '*.dex'))]
code_size = 0
for dex_file in dex_files: